3

以数字方式对与字典顺序相反的字母字符进行排序是什么意思,例如在带有选项-n的 K&R 5-14 中

4

2 回答 2

4

这意味着将字符串视为单个数值而不是一系列恰好是数字的字符。K&Rnumcmp在练习 5-14 上方向您展示了要使用的函数。它将char*参数转换为double数字并进行比较,而不是一次比较字符串一个字符。这样,字符串103将排字符串之后,23因为 103 大于 23。作为字符串比较,103排在前面,23因为 for 的字符代码1小于 的字符代码2

于 2011-05-17T20:15:14.913 回答
0

在 K&R 的第二版第 5.11 节中,比较函数

int numcmp(char *s1, char *s2); /* defined on page 121 */

用于数字排序(而不是strcmp用于字典排序)。numcmp调用函数

double atof(char s[]); /* defined on page 71 */

它将字符串转换为其等效的双精度浮点数。

在示例中,使用-n命令行参数进行排序是由函数double返回的值完成的atof

于 2011-05-17T20:39:54.443 回答