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

时间:2013-02-05 00:08:52

标签: 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 *)&word[m]);
        i = 0;
    }
}

如果邮件为Falsified by not word match: message[1] = ' a a a' and 'a'且匹配的字词为'a a a',则会为'a'提供类似内容。

1 个答案:

答案 0 :(得分:0)

当您使用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]);