sdnu1441 中string形式转换大小写问题

string形式中转换大小写我之前倒是很无奈。
刚刚看见了个方法,需要引进algorithm,之后就很方便了。

    string m,n;
    transform(m.begin(), m.end(), m.begin(), ::tolower);
    transform(n.begin(), n.end(), n.begin(), ::tolower);
    cout<<m<<n<<endl;
    transform(m.begin(), m.end(), m.begin(), ::toupper);
    transform(n.begin(), n.end(), n.begin(), ::toupper);
    cout<<m<<n<<endl;

1441.字符串对比

Time Limit: 1000 MS Memory Limit: 131072 KB
Total Submission(s): 8 Accepted Submission(s): 6

Description

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

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

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

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

4:两个字符串长度相等,但是即使是不区分大小写也不能使这两个字符串一致。比如 Beijing 和 Nanjing   编程判断输入的两个字符串之间的关系属于这四类中的哪一类,给出所属的类的编号。

Input

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

Output

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

Sample Input

BEIjing beiJing

Sample Output

3

#include<cstdio>
#include<string>
#include<cstring>
#include<iostream>
#include <algorithm> 
using namespace std;
int main()
{
    string m, n, c, d;
    cin >> m >> n;
    c = m;
    d = n;
    transform(m.begin(), m.end(), m.begin(), ::tolower);
    transform(n.begin(), n.end(), n.begin(), ::tolower);
    int a, b;
    a = m.length();
    b = n.length();
    if (a != b)
    {
        printf("1");
    }
     if (a==b&&c != d&&m == n)
    {
         printf("3");
    }
     if (c == d)
     {
         printf("2");
     }
     if (a == b&&m != n)
     {
         printf("4");
     }
     return 0;

}
全部评论

相关推荐

拉丁是我干掉的:把上海理工大学改成北京理工大学。成功率增加200%
点赞 评论 收藏
分享
10-30 23:23
已编辑
中山大学 Web前端
去B座二楼砸水泥地:这无论是个人素质还是专业素质都👇拉满了吧
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务