全部,C如果條件不能按預期工作
我來自java和php世界,所以這可能是一個因素。 但是我有一個問題:
printf("%s\n",data[0]);
if(data[0] == "BG01") {
printf("%s\n",otherstring);
}
的問題是,在控制檯「BG01」,但由於某些原因,如果條件不拿起它,並在第二個printf第一個printf回報永遠不會被執行。
這張圖片有什麼問題?
感謝, 專家組
全部,C如果條件不能按預期工作
我來自java和php世界,所以這可能是一個因素。 但是我有一個問題:
printf("%s\n",data[0]);
if(data[0] == "BG01") {
printf("%s\n",otherstring);
}
的問題是,在控制檯「BG01」,但由於某些原因,如果條件不拿起它,並在第二個printf第一個printf回報永遠不會被執行。
這張圖片有什麼問題?
感謝, 專家組
在C中,你必須使用strcmp()
,就像你在Java中使用.equals()
:
if (strcmp(data[0], "BG01") == 0) ...
你現在正在做它的方式是,你比較2個指針而不是它們指向的字符串。這些指針可以指向相同的值,但位於內存中非常不同的位置,因此不成立。
執行此操作的方法是使用strcmp(string1,string2)函數,它將檢查字符串本身而不是指針。
+1,但你爲什麼指責隨機認識java的人? ;-) – 2009-09-20 12:08:49
OP說:「我來自java和php世界」,所以我總結認爲'.equals()'的知識將是一個有效的假設。 – 2009-09-20 12:10:37
這是,我只是不知道如何在C攻擊這個。 感謝Greg,這很好。 – goe 2009-09-20 12:23:40