文字列を指定すると、それが回文かどうかを示す再帰関数を使用する必要があります。
この演習に問題はありませんが、このコードが要求したことを実行する理由が本当にわかりません。特に、strlen(char*) 関数が IndexOutOfRange のように例外をスローしない理由がわかりません (OOP の概念であることはわかっていますが、自分で説明する方法がわかりません)。
コードは次のとおりです。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
bool IsPalindrome(char str[],int index){
if (index>0){
if (str[index]==str[strlen(str)-1-index])
return IsPalindrome(str,index-1);
else
return false;
}
else{
if (str[index]==str[strlen(str)-1])
return true;
else
return false;
}
}
int main()
{
char A[100];
gets(A);
if (IsPalindrome(A,strlen(A)))
printf("palindrome");
else
printf("not palindrome");
getch();
return 0;
}
なぜ私は置く必要がないのですか:
if (IsPalindrome(A,strlen(A)-1))
とにかく動作しますか?
使ってます!Orwell の Dev-C++ と TDMGCC コンパイラ 64 ビット