首頁>
7
回覆列表
  • 1 # 髒話比謊話乾淨558

    C語言的字符數組有兩種,比較方式也有所不同。

    1 字符串。

    C語言的字符串是用字符數組表示的。約定以'\0'(ascii碼0)作為結尾標記。

    對於字符串類的字符數組,可以用string.h中的strcmp函數進行比較。

    int strcmp(char *str1, char *str2);

    其比較規則為:

    a, 從左向右依次比較每個元素;

    b, 如果出現str1的元素ascii碼比較大,則返回1;如果出現str2元素ascii碼比較大,則返回-1。如果相等,則繼續。

    c, 如果一直相等,直到遇到\0,這時檢查是否均為\0,如果均為\0,那麼返回0;

    d, 如果str1到\0,而str2沒到,返回-1; 否則返回1。

    總結規則就是,如果str1比str2大,返回1;如果相等,返回0;如果str1小,返回-1。

    2 不帶\0結束的字符數組。

    對於此類數組,沒有庫函數可供使用,只能自己寫函數進行比較。規則可以仿照strcmp的規則。

    由於沒有\0作為結束,所以參數中必須傳入每個數組的元素個數。

    int char_array_cmp(char *s1, int l1, char *s2, int l2)

    {

    int lmin = l1>l2? l2:l1; //較小長度者。

    int i;

    for(i = 0; i < lmin; i ++)

    if(s1[i] > s2[i]) return 1;

    else if(s1[i] < s2[i]) return -1;

    //運行到這裡,表示所有已判斷元素均相等。

    if(l1 == l2) return 0;

    if(l1 > l2) return 1;

    return -1;//l1 < l2的情況。

    }

  • 蘿蔔絲粉條餡餅的做法?