B.字符串判等 | |||||
|
|||||
Description | |||||
给定两个由大小写字母和空格组成的字符串 s1和 s2。判断压缩掉空格、并忽略大小写后,这两个字符串是否相等。 | |||||
Input | |||||
多组测试数据,处理到文件结束。 每组数据包含两个字符串s1,s2,长度大于1,小于等于100. | |||||
Output | |||||
如果两个字符串相等,输出yes;否则输出no | |||||
Sample Input | |||||
God like
gOdl iKE
legendary
le gandaRY
|
|||||
Sample Output | |||||
yes
no
|
|||||
Hint | |||||
水题一枚
我的思路是:把无论大写还是小写都转化成数字
看杭电思路
先删去空格,然后统一大小写(统一成大写还是小写随你)
最后再是字符串比较strcmp
所以有必要学习一下strcmp
所在头文件:string.h
功能:比较字符串s1和s2。
一般形式:strcmp(字符串1,字符串2)
说明:
当s1<s2时,返回为负数 注意不是-1
当s1==s2时,返回值= 0
当s1>s2时,返回正数 注意不是1
即:两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇' '为止。
# include <stdio.h>
# include <string.h>
int main ()
{
char s1[105],s2[105];
while(gets(s1))
{
gets(s2);
int l1=0,l2=0,i;
for(i=0; s1[i]; i++)
{
if(s1[i]!=' ')
{
if(s1[i]>='A'&&s1[i]<='Z') s1[l1++]=s1[i]+32;
else s1[l1++]=s1[i];
}
}
s1[l1]=' ';
for(i=0; s2[i]; i++)
{
if(s2[i]!=' ')
{
if(s2[i]>='A'&&s2[i]<='Z') s2[l2++]=s2[i]+32;
else s2[l2++]=s2[i];
}
}
s2[l2]=' ';
if(strcmp(s1,s2)==0) printf("yes ");
else printf("no ");
}
}
代码中黄色部分是值得注意的