C++에서 대소문자 변환하는 방법
1. C++ 내장 함수 사용
C++에는 toupper와 tolower라는 내장 함수가 있어 대소문자 변환을 쉽게 할 수 있습니다.
각 함수는 아래와 같은 형태를 갖습니다.
int toupper(int c);
int tolower(int c);
위 함수들은 인자로 받은 문자 c가 대소문자이면 대문자나 소문자로 변환한 값을 반환하며, 그렇지 않으면 c를 그대로 반환합니다. 예를 들어, 아래 코드는 문자열 str에서 모든 소문자를 대문자로 변환합니다.
#include <algorithm>
#include <cctype>
#include <string>
using namespace std;
int main() {
string str = "Hello, World!";
transform(str.begin(), str.end(), str.begin(), [](unsigned char c) { return toupper(c); });
return 0;
}
C++에서 std::transform() 함수를 사용하려면 <algorithm> 헤더 파일이 필요합니다. std::transform() 함수는 입력 범위의 요소들을 다른 값을 가진 출력 범위로 변환하는 데 사용됩니다.
예를 들어, std::transform() 함수를 사용하여 벡터 v의 모든 요소를 대문자에서 소문자로 변환할 수 있습니다. 이를 위해 <algorithm> 헤더 파일과 <cctype> 헤더 파일을 포함해야 합니다.
2. ASCII 코드 사용
ASCII 코드는 대문자와 소문자의 차이가 정확히 32입니다. 따라서 문자열에서 대소문자를 변환할 때, 문자의 ASCII 코드에 32를 더하거나 뺌으로써 변환할 수 있습니다. 아래 코드는 문자열 str에서 모든 대문자를 소문자로, 소문자를 대문자로 변환합니다.
#include <string>
using namespace std;
int main() {
string str = "Hello, World!";
for (auto& c : str) {
if (c >= 'a' && c <= 'z') {
c = c - 'a' + 'A'; // 소문자를 대문자로
} else if (c >= 'A' && c <= 'Z') {
c = c - 'A' + 'a'; // 대문자를 소문자로
}
}
return 0;
}
'C++ > 기초' 카테고리의 다른 글
[기초] 함수와 클래스 구현하기 / C++ (0) | 2023.05.03 |
---|---|
[기초] 해시 구현하기 (unordered) / C++ (0) | 2023.05.03 |
[기초] 배열 다루기 (vector 로 원소 추가, 삭제, 수정) / C++ (0) | 2023.05.03 |
[기초] 네임스페이스(namespace) 선언 /C++ (0) | 2023.05.03 |