我有这种类型的数组: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语言。
答案 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]);