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で与えられて、その中から
大文字は小文字に、小文字は大文字に変換して出力する問題です。
CapsLock → cAPSlOCK みたいな...。
初め、大文字小文字判定を「x == toupper(x)」としていたのですが、
判定をするのには「islower / isupper」を使う方がより適切と言う事で修正しました。
islower() ---> 英小文字(a~z)なら真(0以外の数)を返す
isupper() ---> 英大文字(A~Z)なら真(0以外の数)を返す
tolower() ---> 大文字なら小文字に変換した値を返す
toupper()---> 小文字なら大文字に変換した値を返す