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