题目描述:两个长度不超过80的字符串,串中包括大写、小写和空格字符,去掉空格字符并忽略大小写后判断两个字符串是否相等。
输入描述:第一行输入的是测试数据的组数n,每组测试数据占两行,第一行是第一个字符串S1,第二行是第二个字符串S2。
输出描述:如果两个字符串相等,则输出YES,否则输出NO。
样例输入:
2
QW erTyu OP
qwert YUOp
ASDDDfghj
asDDFgHJ
样例输出:
YES
NO
本题主要用到字符串处理函数strlen、strlwr、strcmp、strcpy
代码如下
#include<stdio.h>
#include<string.h>
#define N 40
int main()
{
int i,j,n,m=0;
char str[80],arr[N][80],ch[N][80];
int len[80];//用来存储每个字符串的长度
scanf("%d",&n);//输入测试的组数
getchar();//清除 \n
for(i=0;i<2*n;i++)
{ //输入n组字符串
gets(str);
strlwr(str);//把输入字符串中所有字符统一变为小写
len[m++]=strlen(str);//统计每个字符串的长度
strcpy(arr[i],str);//把输入的字符串复制给arr数组
}
for(i=0;i<2*n;i++)//作用、清除每个字符串的空格
{
int k=0;
for(j=0;j<len[i];j++)
{
if(arr[i][j]!=' ')
{
ch[i][k++]=arr[i][j];
}
}
ch[i][k]='\0';//标志字符串结尾
}
for(i=0;i<2*n;i+=2)//比较每组字符串是否相等
{
if(strcmp(ch[i],ch[i+1])==0){
printf("YES\n");
}else{
printf("NO\n");
}
}
return 0;
}
运行截图如下: