文字列が回文かどうかをチェックする関数を書いています。例: aba、abba、ba、ba、マグロの瓶のナッツ。 アバはパリンドロームではなく、 ""(奇数スペース)と ""(ダブルスペース)はありません。ispalindrome C、空白チェックの問題
int is_palindrome(const char string[]) {
// This implementation is only partly correct
int string_length = length(string);
int i = 0, j = string_length - 1;
for (i = 0; i < j + 1; i++, j--) {
while (string[i] == ' ') {
i = i + 1;
}
while (string[j] == ' ') {
j = j - 1;
}
if (string[i] == ' ' && string[j] == ' ') {
break;
}
if (string[i] != string[j]) {
return 0;
}
}
return 1;
}
しかし、私の本当の問題は、この機能はoddspaceとスペースのどちらかを確認することができないということである、と私は間違っどこで見ることができません。
デバッガを使用すると、問題を発見しやすくなります。特にこの問題は、シングルステッピングがどこから離れていくのかを発見することで完璧なものになります。 – WhozCraig
部分的に間違っている場合は間違っています –
'string [i]'と 'string [j]'の*文字*を実際に比較する場所も表示されません。あなたは 'i'と' j'を見つけるために多くの仕事をしました。これらの努力をあなたが知っている唯一の条件と比較することは、あなたのループを破った条件が非生産的であるため、真実ではありません。 – WhozCraig