精华内容
下载资源
问答
  • 字符串对比

    2021-05-02 18:58:07
    字符串对比题目正文输入输出样例总结 题目正文 给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一: 1:两个字符串长度不等。比如 Beijing 和 Hebei 2:两个字符串...


    题目正文

    给定两个仅由大写字母或小写字母组成的字符串(长度介于1到10之间),它们之间的关系是以下4中情况之一:

    1:两个字符串长度不等。比如 Beijing 和 Hebei

    2:两个字符串不仅长度相等,而且相应位置上的字符完全一致(区分大小写),比如 Beijing 和 Beijing

    3:两个字符串长度相等,相应位置上的字符仅在不区分大小写的前提下才能达到完全一致(也就是说,它并不满足情况2)。比如 beijing 和 BEIjing

    4:两个字符串长度相等,但是即使是不区分大小写也不能使这两个字符串一致。比如 Beijing 和 Nanjing

    编程判断输入的两个字符串之间的关系属于这四类中的哪一类,给出所属的类的编号。

    输入

    包括两行,每行都是一个字符串

    输出

    仅有一个数字,表明这两个字符串的关系编号。

    样例

    BEIjing
    beiJing
    3

    代码如下:

    #include<stdio.h>
    #include<iostream>
    #include<string.h>
    using namespace std;
    int main()
    {
        char a[10],b[10];
        gets(a);
        gets(b);
        int len1=strlen(a);
        int len2=strlen(b);
        int flag=0;
        int c=1;
        int count=0;
        int count1=0;
        if(len1!=len2)
            cout<<"1"<<endl;
        else
        {
            for(int i=0;i<len1;i++)
            {
                if(a[i]==b[i])
                {
                  flag=1;
                  count++;
                }
                else if(a[i]==b[i] || a[i]==b[i]+32 || a[i]==b[i]-32)
                {
                     c=1;
                     count1++;
                }
    
                else
                {
                     flag=3;
                     break;
                }
    
            }
            }
    
    
        if(flag==1 && count==len1)
            cout<<"2"<<endl;
        else if(c==1 && count1!=0)
            cout<<"3"<<endl;
        else if(flag==3)
            cout<<"4"<<endl;
            return 0;
    }
    
    

    总结

    这个题我发现有一个bug就是如果出现asd和ASd的情况,答案是2的时候,同样也是提交正确,是因为如果用同一个变量的话,最后一个被覆盖的时候只算最后一个,就会出现上面的情况,但是我的代码改进一下,就不会出现我说的这个问题,很开心啊!

    展开全文

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,138
精华内容 2,855
关键字:

字符串对比