close
[By JHF 學長]
今天又看到一個可能的錯誤....
比較兩個字串的時候....記得, 不是用:
"string" == "string"
喔....上一行的code拿去compile會過, 而且執行結果還會正確
不過那只限constant....
如果code是:
char a[] = "string";
if(a == "string")
printf("same");
else
printf("different");
這個程式的結果, 你可以踹看看....output一定是different....
那麼, 如果要比較兩個字串變數的時候要怎麼辦呢?
strcmp(str1, str2)
是個好用的選擇....當兩個字串的'內容'相同的時候,
這個函式會回傳 0, 否則是以兩字串的第一個字元來作判斷....
直到非相同的字元時傳回一個非零值.... (詳細設計還是別講太多好)
如果你只是想檢查前幾個字元是否相同, 那使用strncmp()也是個不錯
的選擇....但是, 就是沒有string1 == string2的用法喔....
今天又看到一個可能的錯誤....
比較兩個字串的時候....記得, 不是用:
"string" == "string"
喔....上一行的code拿去compile會過, 而且執行結果還會正確
不過那只限constant....
如果code是:
char a[] = "string";
if(a == "string")
printf("same");
else
printf("different");
這個程式的結果, 你可以踹看看....output一定是different....
那麼, 如果要比較兩個字串變數的時候要怎麼辦呢?
strcmp(str1, str2)
是個好用的選擇....當兩個字串的'內容'相同的時候,
這個函式會回傳 0, 否則是以兩字串的第一個字元來作判斷....
直到非相同的字元時傳回一個非零值.... (詳細設計還是別講太多好)
如果你只是想檢查前幾個字元是否相同, 那使用strncmp()也是個不錯
的選擇....但是, 就是沒有string1 == string2的用法喔....
全站熱搜
留言列表