字符数组比较问题

标签 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”、“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/

相关文章:

C 窗口 : generate a child process in order to stop and restart (after timeout) the parent process

c++ - 为什么从 unsigned long long 转换为 double 会导致数据丢失?

c - 无法从子进程内部将数据写入文件

c - 我不知道前后增量

string - C# 格式化 - 如何正确格式化名称? IE。名字或姓氏

C 3D 字符数组函数返回字符数组

python - 使用 N 维索引列表查询 numpy 数组

javascript - 我试图理解 Javascript 中的这段嵌套对象

python - 将文本转换为 numpy 数组

javascript - Javascript 中 String.concat() 的用途是什么?