对于我完全不同意的原因,但是“反可用性的力量”继续尽管有我的反对而颁布命令,我有一个排序程序,它使用基本的strcmp()比较按名称排序。它很好用;很难弄错。然而,在最后一刻,他们决定以数字开头的条目应该出现在以字母开头的条目之后,与ASCII排序相反。他们引用EBCDIC标准,称数字跟在字母后面,因此之前的假设并不是普遍真理,而我无法赢得这个争论的权力...但我离题了。
我的问题就在这里。我已经用一个新的函数调用nonstd_strcmp替换了所有适当的strcmp引用,并现在需要实施修改以完成排序更改。我使用了FreeBSD源作为我的基础:http://freebsd.active-venture.com/FreeBSD-srctree/newsrc/libkern/strncmp.c.html。
我的问题就在这里。我已经用一个新的函数调用nonstd_strcmp替换了所有适当的strcmp引用,并现在需要实施修改以完成排序更改。我使用了FreeBSD源作为我的基础:http://freebsd.active-venture.com/FreeBSD-srctree/newsrc/libkern/strncmp.c.html。
if (n == 0)
return (0);
do {
if (*s1 != *s2++)
return (*(const unsigned char *)s1 -
*(const unsigned char *)(s2 - 1));
if (*s1++ == 0)
break;
} while (--n != 0);
return (0);
我想我可能需要花些时间来仔细思考应该如何完成,但我相信我不是唯一一个经历过在发布前突然更改规格而感到脑袋一片空白的人。
C++
标签? - sbi