2017-06-25 91 views
0

我有這種類型的數組:char ArrayPalavra [100] [200];字符數組比較問題

而且我餵養這樣的:

pchPalavra = strtok(palavras," "); 

while (pchPalavra != NULL) 
{ 
    tamanhoArrayPalavra++; 
    strcpy(ArrayPalavra[i++], pchPalavra); 
    pchPalavra = strtok (NULL, " "); 
} 

我寫這個數組的話,像「這個」,「是」,「一」,「測試」。 問題是,如果我把這個數組放在一個與一個單詞比較,不匹配。

for(int i = 0; i < tamanhoArrayPalavra; i++) 
{ 
    if("this" == ArrayPalavra[i]) 
    { 
     printf("Work!"); 
    } 
} 

但在測試中,如果我打印ArrayPalavra [i],他們來與「這個」。爲什麼使用迭代可以奏效?我正在使用C語言。

+1

不能使用等號''==比較字符串使用[STRCMP(http://en.cppreference.com/w/c/string /字節/的strcmp) –

回答

1

使用strcmp()的字符串比較,這樣的:

#include <string.h> // include the header that provides the methods for strings 

// 'ArrayPalavra[i]' should be NULL terminated! 
if(strcmp("this", ArrayPalavra[i]) == 0) 
{ 
    printf("Equal\n"); 
} 

不要忘了,在C字符串爲空終止!

-1

==運算符在C中不適用於字符串。它會比較指針的內存地址,這將永遠是錯誤的。你需要導入strings.h標題,然後你做

strcmp("this", ArrayPalavra[i]);