AcWing 768. 忽略大小写比较字符串大小

发布时间 2023-11-21 00:23:05作者: 胖柚の工作室

题目链接:

#include <iostream>
using namespace std;

string get(string s)
{
    string res;
    for (auto c : s) res += tolower(c);
    return res;
}

int main()
{
    string a, b;
    getline(cin, a);
    getline(cin, b);

    a = get(a), b = get(b);

    if (a == b) puts("=");
    else if (a > b) puts(">");
    else puts("<");

    return 0;
}

本题需要注意的是使用\(\rm auto\)\(\rm string\)自动遍历的时候,有以下两种情况需要注意:

string s = "hello";
for (auto &i : s ) i = toupper(i); //改变成大写,影响s的值
cout << s; //s的值是HELLO

string s = "hello";
for (auto i : s ) i = toupper(i); //改变成大写,不影响s的值
cout << s; //s的值是hello

for (int i = 0; i < s.size(); i++) s[i] = tolower(s[i]);for (auto &i : s ) i = toupper(i);等价。