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 次瀏覽

啟動您的職業生涯

完成課程獲得認證

開始學習
廣告