我有这种类型的数组: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”。为什么使用迭代不起作用?我用的是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("Equal\n");
}
不要忘记 C 中的字符串应该以 NULL 结尾!
关于字符数组比较问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44751075/