0

単語比較プログラムを実行しようとしていますが、比較しようとしている文字に何らかの形で 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'

4

1 に答える 1

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]);
于 2013-02-05T07:30:42.457 に答える