天天看點

字元串對比

問題描述

  給定兩個僅由大寫字母或小寫字母組成的字元串(長度介于1到10之間),它們之間的關系是以下4中情況之一:

  1:兩個字元串長度不等。比如 Beijing 和 Hebei

  2:兩個字元串不僅長度相等,而且相應位置上的字元完全一緻(區分大小寫),比如 Beijing 和 Beijing

  3:兩個字元串長度相等,相應位置上的字元僅在不區分大小寫的前提下才能達到完全一緻(也就是說,它并不滿足情況2)。比如 beijing 和 BEIjing

  4:兩個字元串長度相等,但是即使是不區分大小寫也不能使這兩個字元串一緻。比如 Beijing 和 Nanjing

  程式設計判斷輸入的兩個字元串之間的關系屬于這四類中的哪一類,給出所屬的類的編号。

輸入格式

  包括兩行,每行都是一個字元串

輸出格式

  僅有一個數字,表明這兩個字元串的關系編号

樣例輸入

BEIjing

beiJing

樣例輸出

3

#include <iostream>
#include <string>
using namespace std;
int main()
{
    string a,b;
    cin>>a;
    cin>>b;
    int t;
    int cmp=2;//假設兩個字元串相等
    if(a.length()!=b.length())
    {
        cmp=1;//長度不相等,第一種情況
    } else{
        for(int i=0;i<a.length();i++){
            if(a[i]==b[i]||a[i]+32==b[i]||b[i]+32==a[i]){//三種條件:相等或相差32 
                if(a[i]!=b[i]){//在剛才的條件下,不相等,那就是相差32
                    cmp=3;
                }
            }
            else{
                cmp=4;
                break;
            }
        }
    }
    cout<<cmp<<endl;
    return 0;
}      

繼續閱讀