C-字符阵列比较问题



我有这种类型的数组: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!");
    }
}

但是,在测试中,如果我打印了arraypalavra [i],它们带有"此"。为什么要使用迭代工作?我正在使用C语言。

使用 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("Equaln");
}

不要忘记C中的字符串应为null终止!

==运算符在c中不起作用。它将比较指针的内存地址,这将始终是错误的。您需要导入strings.h标头,然后进行

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

最新更新