#include<bits/stdc++.h>
using namespace std;
int n,i;
//int a[1005][1005];
int main()
{
string s,d;
cin>>s;
cin>>d;
if(s.size()==d.size())
{
string a,b;
a=s;b=d;
transform(a.begin(),a.end(),a.begin(),::tolower);
transform(b.begin(),b.end(),b.begin(),::tolower);
//cout<<a<<b;
if(a==b)
{
if(s==d)cout<<2<<endl;
else cout<<3<<endl;
}
else cout<<4<<endl;
}
else cout<<1<<endl;
return 0;
}
注意:在这里有一点问题我想不明白,如果采用transform函数直接继续宁字符串a,b字母转换会出错,如果先进行字符串赋值语句再进行字符串a,b字母自转换就不会出错。还有待研究
经过一番研究,发现如果为字符串a,b进行初始化,并且字符串长度等于字符串s,
d的长度便不会出错,原因在于transform函数只能把字符串初始化长度范围内的字符进行转换,因此最好采用transform(a.begin(),a.end(),a.begin(),::tolower)这种方式,把转换的字符赋给本身。