編寫一個函數來檢查字符串是否是迴文。必須使用遞歸函數並忽略空格。 我已經完成了第一部分,但仍未弄清楚如何忽略空間。 以下代碼是我已經嘗試過的。C:檢查字符串是否爲Palindrome
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>// this is used for strlen
#include <ctype.h>// this is used for isalnum
int checking_palindrome(char *string,int length);
int main()
{
int result,length;
char string[] = "a ma ma";
length = strlen(string);
result= checking_palindrome(string,length);
if (result == 1)
printf("The array is palindrome.\n");
else
printf("The array is not palindrome.\n");
system("pause");
return 0;
}
int checking_palindrome(char *string, int length)
{
if (length <= 0)
return 1;
else if (string[0] == string[length-1])
return checking_palindrome(&string[0], length - 2);
else
return 0;
}
爲什麼您使用'&string [0]'而不是'&string [1]'或者'string + 1'作爲'checking_palindrome()'的第一個參數? – MikeCAT
瞭解如何使用調試器,以及如何在監控變量及其值的同時逐行執行代碼。這會很快幫助你。對於任何想要更嚴肅地進行編程的人來說,這也是一項關鍵技能,即使對於業餘愛好程序員也是如此。 –
@MikeCAT其實,那是我的錯。我的原始代碼是&string [1]。 –