코딩테스트/기타

[C++] 알파벳 대소문자 변환 방법 2가지

sujin7837 2021. 6. 24. 11:03
반응형

1. 직접 연산

아스키코드 값을 이용하여 함수를 직접 구현하는 방법입니다. c언어에서도 이용이 가능합니다.

#include <iostream>
#include <string>
using namespace std;

int mytolower(int c) {
    if ((c >= 'A') && (c <= 'Z')) {
        c = c - 'A' + 'a';
    }
    return c;
}
        
int mytoupper(int c) {
    if ((c >= 'a') && (c <= 'z')) {
       c = c - 'a' + 'A';
    }
    return c;
}

int main() {
    string str = "Hello World";
    cout << "Origin : " << str << endl;
    
    for(int i = 0; i < str.size(); i++) {
        str[i] = mytolower(str[i]);
    }
    cout << "ToLower : " << str << endl;
    
    for(int i = 0; i < str.size(); i++) {
        str[i] = mytoupper(str[i]);
    }
    cout << "ToUpper : " << str << endl;
    
    return 0;
}
//실행 결과

Origin : Hello World
ToLower : hello world
ToUpper : HELLO WORLD

 

2. toupper(), tolower() 함수

C++에 존재하는 함수로, 각 함수의 역할은 아래와 같습니다.

 

toupper(): 소문자를 대문자로 변환

tolower(): 대문자를 소문자로 변환

#include <iostream>
#include <string>
using namespace std;

int main() {
    string str = "Hello World";
    cout << "Origin : " << str << endl;
    
    for(int i = 0; i < str.size(); i++) {
        str[i] = tolower(str[i]);
    }
    cout << "ToLower : " << str << endl;
    
    for(int i = 0; i < str.size(); i++) {
        str[i] = toupper(str[i]);
    }
    cout << "ToUpper : " << str << endl;
    
    return 0;
}
//실행 결과

Origin : Hello World
ToLower : hello world
ToUpper : HELLO WORLD


출처: https://artist-developer.tistory.com/29 [개발자 김모씨의 성장 일기]

반응형