프로그래머스 A 강조하기 문제 바로가기

ASCII 아스키 코드를 이용한 풀이

아스키 코드를 이용하면 string에서 각 문자열이 어떤지를 쉽게 나눌 수 있다. ASCII 표에 대한 정보는 References 참조!

#include <string>
#include <vector>

using namespace std;

string solution(string myString) {
    string answer = myString;
    for (int i=0; i<answer.size(); i++){
        if (answer[i] - 0 == 97){
            answer[i] -= 32;
        }
        if (66 <= answer[i] && answer[i] <= 90){
            answer[i] += 32;
        }
    }
    return answer;
}

cctype을 이용한 풀이

cctype header에서는 여러 기능들을 제공하는데, 자주 사용하는 것은 islower() isupper() tolower() toupper()가 있다. 이것을 이용하면 쉽게 대소문자를 판별할 수 있다.

#include <string>
#include <vector>

using namespace std;

string solution(string myString) {
    string answer = "";
    for(char ch : myString)
    {
        if(ch == 'A' || ch == 'a')
            answer += 'A';
        else
            answer += tolower(ch);
    }
    return answer;
}

출처

References