C语言中strcoll()函数是什么?


C库函数 **int strcoll(const char *str1, const char *str2)** 用于比较字符串 **str1** 和 **str2**。结果取决于位置的 LC_COLLATE 设置。

字符数组称为字符串

声明

以下是数组的声明:

char stringname [size];

例如:char string[50]; 长度为50个字符的字符串

初始化

  • 使用单个字符常量:
char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,‘\0’}
  • 使用字符串常量:
char string[10] = "Hello":;

**访问**:使用控制字符串“%s”访问字符串,直到遇到‘\0’

Strcoll() 函数

此函数与strcmp()函数相同,它比较两个字符串,并根据比较结果返回一个整数。

声明

以下是strcoll()函数的声明:

int strcoll(const char *string1, const char *string2)

这里:

  • string1 指的是第一个字符串。
  • string2 指的是第二个字符串。

strcoll() 的返回值

  • > 0 当字符串string1中第一个不匹配字符的ASCII值大于string2时。

  • < 0 当字符串string1中第一个不匹配字符的ASCII值小于string2时。

  • = 0 如果两个字符串相等。

示例

以下示例演示了strcoll()函数的用法。

在线演示

#include <stdio.h>
#include <string.h>
int main () {
   char string1[20];
   char string2[20];
   int final;
   strcpy(string1, "WELCOME");
   strcpy(string2, "Welcome to the world!");
   final = strcoll(string1, string2);
   if(final > 0){
      printf(" string1 is greater than string2");
   } else if(final < 0) {
      printf("string1 is less than string2");
   } else {
      printf("string1 and string2 are equal");
   }
   return 0;
}

输出

执行上述程序时,会产生以下结果:

string1 is less than string2

示例

让我们看看另一个程序。

以下是使用strcoll在运行时比较两个字符串的程序:

在线演示

#include <stdio.h>
int main (){
   char string1[20];
   char string2[20];
   int final;
   printf("enter string1:
");    gets(string1);    printf("enter string2:
");    gets(string2);    final = strcoll(string1, string2);    if(final > 0){       printf(" string1 is greater than string2");    }    else if(final < 0){       printf("string1 is less than string2");    }    else{       printf("string1 and string2 are equal");    }    return 0; }

输出

执行上述程序时,会产生以下结果:

enter string1:
Tutorails Point
enter string2:
Point
string1 is greater than string2

更新于:2021年3月19日

415 次浏览

启动您的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.