我正在尝试编写一个检查回文的程序。 但不知何故,我得到了一个分段错误。 这个程序:c中的分段错误
#include <stdio.h>
int palindrome(char *beginning); //functions declaration
int main()
{
char str[255],c; //variables
int i=0;
printf("please enter a string: "); //message to user
fgets(str,255,stdin);
palindrome(str[255]);
return 0;
}
int palindrome(char *beginning) //functions to chack palindrome
{
char *end = beginning + strlen(beginning) -1;
if (end - beginning <= 0)
return 1;
if (!isalpha(*beginning))
palindrome(beginning+1);
if (!isalpha(*end))
{
*end = '\0';
palindrome(beginning);
}
if (*beginning == *end)
{
*end = '\0';
return palindrome(beginning+1);
}
return 0;
}
检查你的编译器警告。 '回文(str [255])'是错误的。该函数需要'char *',但'str [255]'是一个'char',并且还可以访问数组。 – Barmar
当您尝试编译时,您的编译器是否告诉您任何感兴趣的东西?如果是的话,*它说了什么?如果没有,请获得符合标准的编译器。 – EOF