C 如何单独处理字符串中的每个字符?

C 如何单独处理字符串中的每个字符?,c,C,我试图运行一个单词比较程序,但我无法阻止for循环以某种方式添加到我试图比较的字符中 for(m = 0; m < wordSize; ++m) { a = l + m + 1; if(word[m] != message[a]) { printf("Falsified by not word match: message[%d] = '%s' and '%s'\n", a, (char *)&message[a], (char *)&

我试图运行一个单词比较程序,但我无法阻止for循环以某种方式添加到我试图比较的字符中

for(m = 0; m < wordSize; ++m)
{
    a = l + m + 1;
    if(word[m] != message[a])
    {
        printf("Falsified by not word match: message[%d] = '%s' and '%s'\n", a, (char *)&message[a], (char *)&word[m]);
        i = 0;
    }
}
for(m=0;m
这给了我一些类似于非单词匹配伪造的
:message[1]='a'和'a'
如果消息是
'a'
,而匹配的单词是
'a'

,当您使用
print()
并用
%s
传递字符串时,您将看到字符串中的所有内容,直到字符串结束。字符串的结尾标记为“NUL”字符,ASCII 0。在C语言中,这是
\0

您正在查看字符,但随后的错误消息是打印字符串,并且打印的内容超出了您的需要

要使其仅打印不同的字符,请使用
%c
格式代码,如下所示:

printf("Falsified by not word match: message[%d] = '%c' and '%c'\n", a, message[a], word[m]);

a、l和m是什么类型?另外,请给出一个更好的示例,说明您试图解决的问题。您的邮件以空格字符开头,但与您的单词“a”不匹配。您可能需要检查代码是否跳过空格!我不确定我是否正确处理了你的问题!!