Моя проблема в том, что этот код работает только с крошечными строками ввода
Код должен проверять, является ли вход Палиндромом. И есть два варианта, я реализую их в дополнительных функциях (эта ошибка также возникает, когда я закомментирую функции)
например:
ввод "отто" - нормально
«рельефный продавец» - это нормально
«xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx» -> ошибка сегментации
int main(int argc, char **argv)
{
char* str;
int erg;
int c;
char stroriginall[50];
fgets(str,50,stdin);
str[strlen(str)-1]='\0';
if(strlen(str)>40)
{
printf("%s: Error, input must <=40!",argv[0]);
return 1;
}
strcpy(stroriginall,str);
while ((c=getopt(argc, argv, "si")) != -1)
{
switch(c)
{
case 's':
str=removeSpaces(str);
break;
case 'i':
toLowerCase(str);
break;
}
}
erg=checkPalindrom(str);
if(erg==0)
{
printf("%s ist ein Palindrom\n",stroriginall);
}
else
{
printf("%s ist kein Palindrom\n",stroriginall);
}
return 0;
}
я надеюсь, что кто-нибудь может мне помочь:)