K& R - 数字字符的数字排序?

时间:2011-05-17 20:08:38

标签: c kernighan-and-ritchie

在字典中对字母字符进行数字排序是什么意思,例如在K& R 5-14中选项 -n

2 个答案:

答案 0 :(得分:4)

这意味着将字符串视为单个数字值而不是恰好是数字的一系列字符。 K&amp; R向您显示numcmp功能,仅在练习5-14之上使用。它将char*参数转换为double并以数字方式对它们进行比较,而不是一次比较一个字符的字符串。这样,字符串103在字符串23之后被排序,因为103大于23.比较字符串,103将排序提前< / {> 23因为1的字符代码小于2的字符代码。

答案 1 :(得分:0)

在第二版K&amp; 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值完成的。