C语言中strcoll和strcmp的区别

2025-02-24 21:58:42
推荐回答(3个)
回答1:

1、默认情况下(LC_COLLATE为"POSIX"或"C")和strcmp一样根据ASCII比较字符串大小,这个时候是没有区别的。对于设置了LC_COLLATE语言环境的情况下,则根据LC_COLLATE设置的语言排序方式进行比较。例如:汉字,根据拼音进行比较。

2、strcmp是比较两个字符串的大小,两个字符串相同时返回0,第一个字符串大于第二个字符串时返回一个正值,否则返回负值。比较两个字符串的算法是:逐个比较两个串中对应的字符,字符大小按照ASCII码值确定,从左向右比较,如果遇到不同字符,所遇第一对不同字符的大小关系就确定了两个字符串的大小关系,如果未遇到不同字符而某个字符串首先结束,那么这个字符串是较小的,否则两个字符串相等。

回答2:

strcoll功能和strcmp类似,用法也一样. 特别注意:strcoll()会依环境变量LC_COLLATE所指定的文字排列次序来比较s1和s2 字符串。 strcmp是根据ASCII来比较2个串的. 说明若LC_COLLATE为"POSIX"或"C",则strcoll()与strcmp()作用完全相同。

回答3:

原型:extern intstrcoll(const char *s1,const char * s2); 用法:#include
功能:比较字符串s1和s2。
说明:
功能和strcmp类似,用法也一样.
特别注意:strcoll()会依环境变量LC_COLLATE所指定的文字排列次序来比较s1和s2 字符串。
strcmp是根据ASCII来比较2个串的.
说明若LC_COLLATE为"POSIX"或"C",则strcoll()与strcmp()作用完全相同。