验证回文字符串,提交报错是这样的:
bool isPalindrome(char * s){
char news[1000];
int i=0,j=0,news_len;
while(s[i]!='\n')
{
if(s[i]>='0'&&s[i]<='9'||s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')
{
if(s[i]>='A'&&s[i]<='Z')
{
s[i]=s[i]+65;
}
news[j]=s[i];
j++;
}
i++;
}
news_len=j;
for(i=0,j=news_len-1;iif(news[i]!=news[j])
{
return false;
}
}
return true;
}
感觉哈是你这个news数组不够大
不知道题目是啥样的,这个长度要是你题目里的最大长度+1
或者直接用下面这个~而且确定s是'\n'结尾的吗,会不会最后不是'\n',这些都有可能导致溢出。
char* news = (char*)malloc(strlen(s) + 1);
//要在return 之前free掉
free(news);