Char数组比较问题

时间:2017-06-25 22:11:45

标签: c arrays string comparison

我有这种类型的数组:char ArrayPalavra [100] [200];

我这样喂食:

pchPalavra = strtok(palavras," ");

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

我正在写这个数组,如“this”,“is”,“a”,“test”。 问题是,如果我将该数组放入for中以便与单词进行比较,那就不匹配。

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

但是在测试中,如果我打印ArrayPalavra [i],他们会带来“this”。为什么使用迭代doenst工作?我正在使用C语言。

2 个答案:

答案 0 :(得分: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 :(得分:-1)

==运算符在C中不能用于字符串。它将比较指针&#39;内存地址,总是错误的。您需要导入strings.h标题然后执行

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