我正在尝试运行一个单词比较程序,但我无法阻止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'
提供类似内容。
答案 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]);