头文件:#include <string.h>
strcoll() 函数根据环境变量LC_COLLATE来比较字符串,其原型为:
int strcoll( const char * str1, const char * str2 );
【参数说明】str1、str2 是要进行比较的两个字符串。
函数说明:strcoll() 会依环境变量 LC_COLLATE 所指定的文字排列次序来比较 s1 和 s2 字符串。
默认情况下,LC_COLLATE 为"POSIX"或"C",strcoll() 和 strcmp() 一样根据ASCII比较字符串大小。
对于设置了 LC_COLLATE 语言环境的情况下,则根据 LC_COLLATE 设置的语言排序方式进行比较。例如,汉字会根据拼音进行比较。
【返回值】若字符串 str1 和 str2 相同则返回0。若 str1 大于 str2 则返回大于 0 的值,否则返回小于 0 的值。
- #include <stdio.h>
- #include <string.h>
-
- int main () {
- char str1[20];
- char str2[20];
- int result;
-
- strcpy(str1, "HELLO");
- strcpy(str2, "hello world!");
-
- result = strcoll(str1, str2);
-
- if(result > 0) {
- printf("ASCII value of first unmatched character of str1 is greater than str2");
- } else if(result < 0) {
- printf("ASCII value of first unmatched character of str1 is less than str2");
- } else {
- printf("Both the strings str1 and str2 are equal");
- }
-
- return 0;
- }
输出:
在这个例子中,我们比较两个不同的字符串。strcoll()函数区分大小写。 'H'的 ASCII 值小于'h',这就是此函数返回负值的原因。
如果我们反转strcoll()函数中的参数,让我们说strcoll(str2, str1),那么函数将返回一个正值。