C 字符数组比较问题

C 字符数组比较问题,c,arrays,string,comparison,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”、

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

我就是这样喂的:

pchPalavra = strtok(palavras," ");

while (pchPalavra != NULL)
{
    tamanhoArrayPalavra++;
    strcpy(ArrayPalavra[i++], pchPalavra);
    pchPalavra = strtok (NULL, " ");
}
我用单词写这个数组,比如“this”、“is”、“a”、“test”。 问题是,如果我把这个数组放在一个数组中,以便与一个单词进行比较,那么这个数组就不匹配了

for(int i = 0; i < tamanhoArrayPalavra; i++)
{
    if("this" == ArrayPalavra[i])
    {
        printf("Work!");
    }
}
for(int i=0;i
但在测试中,如果我打印ArrayPalavra[i],它们会带有“this”。为什么使用迭代不起作用?我使用的是C语言。

用于字符串比较,如下所示:

#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");
}
#include//包含为字符串提供方法的标题
//“ArrayPalavra[i]”应以NULL结尾!
if(strcmp(“this”,ArrayPalavra[i])==0)
{
printf(“相等\n”);
}

不要忘记C中的字符串应该以NULL结尾

==
运算符在C中不适用于字符串。它将比较指针的内存地址,而这些地址总是错误的。您需要导入
strings.h
标题,然后执行此操作

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

不能使用等号
==
来比较字符串的使用情况