我正在寫一個函數來檢查字符串是否是迴文。 例如aba,abba,a ba,a ba,一罐金槍魚的堅果。 Abba不是迴文,「」(奇數空格)和「」(雙空格)不是。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和的DoubleSpace,我不能看到我錯了。
一個調試器會讓它更容易發現問題。特別是對於這個問題,單步法可以很好地發現事物脫離軌道的位置。 – WhozCraig
如果它部分正確,那就錯了 –
我也沒有看到實際比較'string [i]'和'string [j]'的*字符的位置。你經歷了很多工作才能找到'i'和'j'。將這些努力與你知道的唯一條件進行比較並不是真的,因爲它們是打破上述循環的條件,看起來沒有什麼效果。 – WhozCraig