我有一些與我的C程序掙扎! 它應該檢查一個字符串是否是迴文或不!它不應該關注非字母字符,所以程序應該認識到這是一個迴文。 「他住過魔鬼,呃?」 這就是我走到這一步:C程序來檢查字符串是否是Palindrome
#include <stdio.h>
#include <stdlib.h>
int main()
{
char sentence[39];
int left = 0;
int right = 40;
printf("Enter a message: ");
fgets(sentence, 40, stdin);
while(1) {
while(left < right && !(isalpha(sentence[left])))
left++;
while(right > left && !(isalpha(sentence[right])))
right--;
if(left >= right)
break;
else {
if(sentence[left] != sentence[right]) {
printf("Not a Palindrome");
return 0;
}
left++;
right--;
}
}
printf("Palindrome");
return 0;
}
它總是打印:NOT迴文! 即使它是一個。
你嘗試連基本的printf調試?你認爲'fgets'在字符串的末尾留下了一個'\ n'嗎? –
'句子[右]'當'right == 40'是初始值時無效。 – timrau
您應該將字符轉換爲大寫或小寫。 'H!= h'。 –