2017-06-25 18 views
0

私はこのタイプの配列を持っています:char ArrayPalavra [100] [200];文字配列比較の問題

と私はそのように供給しています:

pchPalavra = strtok(palavras," "); 

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

私は "これ"、 "ある"、 "A"、 "テスト" のように、言葉でこの配列を書いています。 問題は、私がその配列を単語との比較のためにforに入れれば、それは一致しません。

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

しかし、テストでは、私がArrayPalavra [i]を印刷すると、 "this"が表示されます。なぜ繰り返しのdoenst仕事を使用して?私はC言語を使用しています。このような文字列を比較するための

+1

を行います/バイト/ 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の文字列がNULL終端されるべきであることを忘れないでください!

-1

==演算子はCの文字列では機能しません。ポインタのメモリアドレスを比較します。ポインタは常にfalseです。 [のstrcmp](http://en.cppreference.com/w/c/stringを使用しますが、文字列を比較するために、等号 `==`を使用することはできませんあなたはstrings.hヘッダをインポートする必要があり、その後、あなたは

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