c语言 字符串判等
忽略大小写的问题解决了,但我不知道怎么忽略空格。
#include<stdio.h>
#include<string.h>
int main()
{
char a[101]={0},b[101]={0};
gets(a);
gets(b);
for(int i=0;i<strlen(a);i++)
{
if(a[i]>='A'&&a[i]<='Z')
a[i]=a[i]+32;
if(a[i]==' ')
a[i]=0;//该步骤需要改
}
for(int i=0;i<strlen(b);i++)
{
if(b[i]>='A'&&b[i]<='Z')
b[i]=b[i]+32;
if(b[i]==' ')
b[i]=0;//该步骤需要改
}
if(strcmp(a,b)==0)
printf("YES");
else printf("NO");
return 0;
}
int main()
{
char a[101] = {0}, b[101] = {0};
char c[101] = {0}, d[101] = {0}; // 存放去掉空格并转小写后的字符串
gets(a);
gets(b);
int i, j;
for (i = j = 0; i < strlen(a); i++)
{
// if (a[i] >= 'A' && a[i] <= 'Z')
// a[i] = a[i] + 32;
// if (a[i] == ' ')
// a[i] = 0; // 该步骤需要改
if (isalpha(a[i])) // 只处理字符
c[j++] = a[i] + (a[i] >= 'A' && a[i] <= 'Z' ? 32 : 0);
}
for (i = j = 0; i < strlen(b); i++)
{
// if (b[i] >= 'A' && b[i] <= 'Z')r
// b[i] = b[i] + 32;
// if (b[i] == ' ')
// b[i] = 0; // 该步骤需要改
if (isalpha(b[i])) // 只处理字符
d[j++] = b[i] + (b[i] >= 'A' && b[i] <= 'Z' ? 32 : 0);
}
if (strcmp(c, d) == 0) // if (strcmp(a, b) == 0)
printf("YES");
else
printf("NO");
return 0;
}
https://blog.csdn.net/u014157109/article/details/115653094
这儿有几个都可以用,原理就是用空格后的字符把空格替换。
先将你输入的字符串做去除空格处理,然后再忽略大小写,然后比较