tolower / toupper 함수
문자열로 반환하는 tolower, toupper 함수를 사용하면 문장의 모든 문자열을 소문자로 혹은 대문자로 바꿀 수 있다.
두 함수는 기능만 다를 뿐 형태는 같기 때문에 tolower 함수로 특징을 소개한다.
특징
int tolower ( int c );
tolower 의 파라미터와 반환형은 모두 integer 타입이다.
character 타입은 'a', 'b', 'c', '-', '!' 등 문자를 저장하는 자료형이지만, 동시에 1byte 크기의 정수라는 것을 알고 있다.
이를 integer형으로 변환하면 아스키코드 값으로 인식하는 원리로 동작하는 것.
또, 이 integer 타입을 다시 character 타입으로 바꿔주면 소문자로 변한 문자를 만나게 된다.
'A' 👉 65 👉 97 👉 'a'
사용법
코드는 👍 표시된 코드를 처음부터 차례대로 옮겨 적으면 실행할 수 있다.
👍 우선, 기본 헤더를 선언한다. tolower와 헤더는 관련 없고, string 자료형과 입출력을 위해 선언했을 뿐이다.
#include <string>
#include <iostream>
using namespace std;
문자 하나만 변환하는 함수 charToLower 는 구색을 맞추기 위해 만들었다.
char charToLower(char c) {
c = tolower(c); // 하나의 문자를 소문자로 치환
return c;
}
👍 strToLower 함수는 문자열 전체를 파라미터로 받고 변환하여 반환한다.
string strToLower(string s) {
// s[] 는 문자열 s에서 특정 위치의 문자를 char 형으로 추출한다.
for (unsigned int i = 0; i < s.size(); i++)
{
s[i] = tolower(s[i]); // 대문자를 소문자로 치환
s[i] = tolower(s.at(i)); // s.at() 과 s[] 는 같다.
}
return s;
}
👍 이제 메인 함수에서 파라미터를 전달하고 변환된 문자와 문자열을 출력한다.
int main(void) {
char ch = 'C';
string str = "Hi, am I UPPERCASE?";
// cout << charToLower(ch) << endl;
cout << strToLower(str) << endl;
return 0;
}
정리
✔ 대문자로 변환하고 싶다면, 위 코드에서 tolower 를 toupper로 바꿔주면 된다.
✔ 문자열에서 대문자만 골라내서 소문자로 바꾸는 것보단 이게 쉽다.
✔ 대소문자 변환은 오탈자 검출에 유용했고, 이메일 주소 입력, 아이디 찾기, 암호 등에 사용될 것 같다. (추측)
728x90
'프로그래밍 > C++' 카테고리의 다른 글
[그레이 후드 공부방] 코딩 테스트 문제 "문자열을 정수로 바꾸기" (0) | 2024.02.23 |
---|