【发布时间】:2011-11-05 01:26:03
【问题描述】:
我的问题是,这段代码只适用于微小的输入字符串
代码应该检查输入是否是回文。并且有两个选项,我在额外的函数中实现它们(这个错误也会出现,当我注释掉函数时)
例如: 输入“otto” - 没问题 “reliefpfeiler” - 没关系 "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" --> 分段错误
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;
}
我希望有人可以帮助我:)
【问题讨论】:
标签: c string segmentation-fault