C 字串是根據什麼比較的?

2021-09-30 13:21:11 字數 1249 閱讀 5166

c語言中字串大小的比較:

如果單純比較長度,直接呼叫類似於strlen()之類的函式就可以,加以比較即可. 

如果比較字串的大小,則比較的是字元的ascii編碼的大小.你搜尋一下ascii碼表就可以得知每乙個ascii字元的大小. 參考

在比較時,設定乙個計數器,從零開始,一直迴圈到最短的那個字元結束,一位一位進行比較,

1.如果 字串1的第n位的ascii碼值 等於 字串2的第n位的ascii碼值

則 繼續比較下一位

2.如果 字串1的第n位的ascii碼值 大於 字串2的第n位的ascii碼值

則 輸出結果:1,表示字串1 > 字串2;

3.如果 字串1的第n位的ascii碼值 小於 字串2的第n位的ascii碼值

則 輸出結果:-1 表示字串1 < 字串2;

4.如果 每一位的ascii碼值都相等,而且長度相同,

則 輸出結果:0 表示字串1 == 字串2;

5.如果 字串1是字串2的前m位,例如 abcd 與abcdef 比較,

則 字串1《字串2.

原因是,到第5位時,字串1的ascii值是0,而字串2的ascii值為'e',即十進位制的101,當然是字串2大了.

具體到 cds和lesoqd

從第一位開始,'c'和'l'比較,當然是'c' < 'l'了,所以,"cds" < "lesoqd"

常用的幾位ascii的順序從小到大為:

0..9, a..z, a..z.

c#語言中字串大小的比較:

string str1 = "d";

string str2 = "d";

console.writeline(string.compare(str1, str2));//1

console.writeline(string.compare(str1, str2, stringcomparison.ordinal));//-32

//string str3 = "c";

//string str4 = "l";

str4));//-1

str4,stringcomparison.ordinal));//-9

看來c#預設是根據某種特殊的規則來排序的,跟ascii碼不一樣,不過可以指定用ascii來排序(stringcomparison.ordinal)。

另外,貌似比較大小沒有意義,字串能夠比較是否相等就ok。

C 字串比較

1,str1.equals str2 2,int result string.compare str1,str2 int result string.compare str1,str2 true 忽略大小寫比較 3 在某些語言中,可以利用 來直接比較字串,而在 c 中,只能用 來比較兩個字串是否相等...

C 比較字串

net framework 提供多個方法來比較字串的值。下表列出並描述了這些值比較方法。方法名使用string.compare 比較兩個字串的值。返回整數值。string.compareordinal 比較兩個字串而不考慮本地區域性。返回整數值。string.compareto 將當前字串物件與另乙...

C 字串的比較

net framework 提供多個方法來比較字串的值。下表列出並描述了這些值比較方法。方法名使用 string.compare 比較兩個字串的值。返回整數值。string.compareordinal 比較兩個字串而不考慮本地區域性。返回整數值。string.compareto 將當前字串物件與另...