我用strcmp()來比較兩個字符串A和B
A="HelloWorld"
B="Hello World"
結果是B比A小
不明白啊,不是空格算1字符麼,怎麼B還比A小呢?
strcmp(A,B);
相當於:
strcmp("HelloWorld" , "Hello World");
這個比較函數的功能是把上面這兩個字符串中的每一個字符的ASC碼值進行比較,遇到'\0'或者不相同的則停止,並返回比較值。
第一步:比較H 和 H 這個字母的ASC值相同,且不為'\0',繼續比較下一位
e...原理同上
l...原理同上
l...原理同上
o..原理同上
這一步:該比較 W 和 ' '(空格)了,W的ASC碼值 > ' '(空格)的ASC碼值。此時雖然沒有遇到'\0', 但是所比較的兩個字符不同,於是比較結束,返回:A>B.
事實上返回的應該是一個枚舉值:1.
例:
strcmp(str1 , str2);
若str1>str2 返回1,
若str1==str2 返回0,
若str1<str2 返回-1,