C++競プロ学習日記(仮)

( 学習記録であり解説Blogではないです )

No.163 cAPSlOCK|yukicoder

No.163 cAPSlOCK - yukicoder を解きました。

#include <bits/stdc++.h>
using namespace std;
int main (){
    
    string C;
    cin >> C;
    
    string S;
    for( char x : C ){
        S += ( islower(x) == 0 ? tolower(x) : toupper(x) );
    }
    cout << S << endl;
    return 0;
}

似ているけれど役割の違う関数があったのでメモします。
大文字小文字の英字がMIXで与えられて、その中から
大文字は小文字に、小文字は大文字に変換して出力する問題です。
CapsLockcAPSlOCK みたいな...。

初め、大文字小文字判定を「x == toupper(x)」としていたのですが、
判定をするのには「islower / isupper」を使う方がより適切と言う事で修正しました。

islower() ---> 英小文字(a~z)なら真(0以外の数)を返す
isupper() ---> 英大文字(A~Z)なら真(0以外の数)を返す
tolower() ---> 大文字なら小文字に変換した値を返す
toupper()---> 小文字なら大文字に変換した値を返す