2022年7月3日星期日

C strcoll

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


功能:比較兩個字串(其實功能與strcmp相似)
回傳:1,0,-1(據自己實驗下來,會依據第一個發現不同的字元進行比大小,並回傳結果)
回傳代表意思
-1: string1 < string2
0: string1 = string2
1: string1 > string2

程式碼

#include <stdio.h>
#include <string.h>

char string1[] = "string1";
char string2[] = "string2";

int main(void)
{
  int result = 0;
  result = strcoll(string1,string2);
  printf("string1 compare with string2.Result:%d\n\n",result);

  result = strcoll(string2,string1);
  printf("string2 compare with string1.Result:%d\n\n",result);

  result = strcoll(string1,string1);
  printf("string1 compare with string1.Result:%d\n\n",result);
  
  return 0;
}

執行結果

參考資料

strcoll vs strcmp 差異

strcmp 主要會依序比較bytes,來得到結果。strcoll 會先依據當地的語言進行轉換後再進行比較。主要是避免在一些國家中的字符在比較時會有異常,stack overflow中的說明

沒有留言:

發佈留言

打賞按讚