c - C 程序设计语言第 2 版。问题

标签 c sorting

我正在阅读著名的书籍“C 编程语言,第 2 版”,并且有一个练习让我坚持不懈。我无法弄清楚到底需要做什么,所以我希望有人向我解释一下。

这是练习 5-17:

  • 添加字段搜索功能,因此可以对行内的字段进行排序,每个字段根据一组独立的选项进行排序。

输入程序期望从命令行得到什么; “独立的选项集”是什么意思?

最佳答案

研究 POSIX sort实用程序,忽略遗留选项。或者研究GNU sort程序;它比 POSIX sort 有更多的选项。

您需要在 Neil Butterworth 在他的答案中建议的固定宽度字段和可变宽度字段之间做出决定。您需要决定用什么字符分隔可变宽度字段。您需要决定每个字段支持哪种排序模式(字符串、大小写折叠字符串、电话簿字符串、整数、 float 、日期等)以及排序方向(正向/反向或升序/降序)。

“独立选项”意味着您可以对不同的字段使用不同的排序标准。即可以安排字段1按字符串升序排序,字段3按整数降序排序,字段9按日期升序排序。

请注意,排序时,主要标准是指定的第一个关键字段。比较两行时,如果两行中的第一个关键字段存在差异,则永远不会考虑后续关键字段。当第一个关键字段中的两行相同时,则第二个关键字段的标准确定相对顺序;然后,如果第二个关键字段相同,则查询第三个关键字段,依此类推。如果没有指定更多的关键字段,那么通常的默认排序标准是“整行输入按字符串升序排列”。稳定排序保留原始数据中两行的相对顺序,这些行在使用关键字段标准进行比较时相同(而不是使用默认的整行比较)。

关于c - C 程序设计语言第 2 版。问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1185661/

相关文章:

c - Linux getpwnam() 库依赖

javascript - 根据属性的第一位对数组进行排序

python - 第一个元素匹配时如何对嵌套列表进行排序?

excel - 在 Excel VBA 中对向量进行排序

linux - 使用排序从列表中删除行,grep LINUX

javascript - 更准确的顺时针顶点排序

c - 将二进制文件读入字符串但类型混合

java - 大 uint64_t 从 C 到 Java 的模除法

c - 嵌套如果,检查指针是否有效然后检查值

c++ - strtok() 使用安全吗