c语言:输入一个以回车结束的字符串(少于80),删除其中除了英文字母和数字以外的字符,再判断字符串是否

c语言:输入一个以回车结束的字符串(少于80),删除其中除了英文字母和数字以外的字符,再判断字符串是否对称

#include <stdio.h>
#include <string.h>
#include <ctype.h>
#define M 80
int main()
{
char s[M];
int len,flag;
int i,j;
printf("输入个数少于%d的字符串\n",M);
gets(s);
len=strlen(s);
if(len>M)
{
printf("超过长度\n");
return 1;
}

for(i=0,j=0;i<len;i++)
{
s[j]=s[i];
if(isalnum(s[i]))//如果是字符或者数字,拷贝
j++;

}
s[j]='\0';

len=strlen(s);
for(i=0,j=len-1,flag=1;i<j;i++,j--)
if(s[i]!=s[j])
flag=0;

printf("新字符串:\n");
puts(s);
if(flag==1)
printf("字符串对称\n");
else
printf("字符串不对称\n");
return 0;

}追问

假如在最后判断是否对称不 区分大小写呢?
感谢了哈

追答

if(s[i]!=s[j])
换成
if(tolower(s[i])!=tolower(s[j]))//都换成小写的

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答
大家正在搜