int isPalindrome(char *str)
{
static int length = strlen(str);
if (length < 1)
return 1;
if (str[0] == str[length - 1])
{
length -= 2;
return isPalindrome(str + 1);
}
else return 0;
}
int main() {
char word[25];
printf("Please enter a word: ");
scanf("%s", word);
if (isPalindrome(word))
printf("%s is Palindrome", word);
else
printf("%s isn't Palindrome", word);
return 0;
}
после того, как я запустил этот код. у него есть ошибка ERROR: Initializer is not a constant
. на этой линии. Что мне делать?ОШИБКА: Инициализатор не является постоянным
static int length = strlen(str);
Функция должна иметь 1 аргумент (строка ввода) ==> isPalindrome (символ * Str)
Сделайте внутреннюю версию 'isPalindrome', которая имеет' length' в качестве параметра, так что вам не понадобится статический int , Старайтесь избегать использования статики. – wimh
'static int length = strlen (str);' -> 'int length = strlen (str);' также 'length - = 2;' then copy & update EOS (End Of String) – BLUEPIXY
Мне нужен 1 аргумент в функции int isPalindrome (char * str) –