所以我試圖做一個代碼來檢查一個單詞是否是迴文。所以,我倒轉了用戶輸入的單詞並檢查單詞是否相等。但是,它總是返回「不等於」。有人可以善意解釋爲什麼這不起作用嗎?爲什麼我的代碼不能檢查單詞是否是迴文工作?
#include <stdio.h>
#include <string.h>
#define STRING_LENGTH 200
int main() {
char s[STRING_LENGTH] = {0};
fgets(s, STRING_LENGTH, stdin);
int Ordlengde = strlen(s) - 1;
printf("The word contains %i letters", Ordlengde);
int i;
char palindrom[STRING_LENGTH];
int x = 0;
for (i = Ordlengde; i >= 0; --i)
{
palindrom[x++] = s[i];
}
int Ordlengde1 = strlen(palindrom) - 1;
printf("The word contains %i letters", Ordlengde);
printf("\nThe word reversed is %s", palindrom);
printf("%s",s);
if (strcmp(s , palindrom) == 0)
printf("are equal\n");
else
printf("are not equal \n");
return 0;
}
爲什麼你從strlen的返回值中減去1? – bruceg
您需要null終止您在'palindrom []'中構建的字符串。 –
@bruceg我懷疑它正在剝離尾隨的換行符。 –