一月24日新生冬季练习赛解题报告B.字符串判等

                                                                                      B.字符串判等
Time Limit: 1000 MS Memory Limit: 32768 K
Total Submit: 86 (44 users) Total Accepted: 37 (37 users) Special Judge: No
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 ");

    }

}

 代码中黄色部分是值得注意的

原文地址:https://www.cnblogs.com/zhanzhao/p/3532947.html