기록은 기억을 이기고 시간보다 오래 남는다.

프로그래밍 언어/c++

[c++] 대문자, 소문자 구분 하는 방법 (islower, isupper)

준_준 2023. 5. 3. 20:07

안녕하세요. 준준입니다. 

오늘은 c++에서 소문자 대문자 구분하는 방법에 대해 알아보도록 하겠습니다.


c++에서는 islower, isupper 함수를 사용할 수 있습니다.

헤드파일

먼저 해당 함수를 사용하기 위해서는 #include <cctype>을 선언해 주어야 합니다.

 

isupper() 

isupper() 함수는 인자로 전달된 문자가 대문자인지 여부를 확인합니다. 

만약 대문자이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.

 

islower()

 islower() 함수는 인자로 전달된 문자가 소문자인지 여부를 확인합니다. 

만약 소문자이면 true를 반환하고, 그렇지 않으면 false를 반환합니다.


더보기

대문자인지 소문자인지 확인을 했으면 바꿀 수도 있어야겠죠?

아래 함수들은 각각 대문자를 소문자로 소문자를 대문자로 바꿔주는 함수들입니다.

toupper()  (소문자->대문자)

함수는 인자로 받은 문자를 대문자로 변환해 주는 함수입니다. 

인자로 받은 문자가 대문자인 경우에는 변환 없이 그대로 반환하며, 

소문자인 경우에는 대문자로 변환해서 반환합니다.

 

tolower()(대문자->소문자)

해당 함수는 인자로 받은 문자를 소문자로 변환해주는 함수입니다.

인자로 받은 문자가 소문자인 경우 변환 없이 그대로 반환하며

대문자인 경우에는 소문자로 변환해서 반환합니다.

 

아래는 예제 코드 1입니다.

#include <string>
#include <vector>

using namespace std;

string solution(string my_string) {
    string answer = "";
    for(int i=0;i<my_string.size();i++){
        if(islower(my_string[i])!=0){
            my_string[i]-=32;
        }
        else{
            my_string[i]+=32;
        }
    }
    return my_string;
}

아래는 예제 코드 2입니다.

string solution(string my_string) {
    string answer = "";
    for(int i =0;i<my_string.size();i++) {
        if(isupper(my_string[i])) {
            tolower(my_string[i]);
        }
    }
    sort(my_string.begin(),my_string.end(),greater<>());
    return my_string;
}
반응형