C/C++ towupper() 함수란?
towupper() 함수는 C/C++ 표준 라이브러리에 내장된 함수로, 와이드 문자(wide character)를 대문자로 변환하는 역할을 합니다. C++ 언어에서는 <cwctype> 헤더 파일에 선언되어 있으며, C 언어에서는 <wctype.h>(또는 <ctype.h>) 헤더 파일에 선언되어 있습니다.
이 함수는 변환할 하나의 와이드 문자를 인수로 전달받습니다. 전달된 문자가 소문자라면 해당하는 대문자로 변환하여 반환하고, 이미 대문자이거나 대문자로 변환할 수 없는 문자라면 원래 값을 그대로 반환합니다.
towupper() 함수의 문법
C++ 언어에서 towupper() 함수의 기본 문법은 다음과 같습니다.
wint_t towupper( wint_t ch );
매개변수: ch – 변환할 와이드 문자
반환값: 변환된 대문자 와이드 문자 (변환이 불가능한 경우 원본 값)
towupper() 함수 사용 예제
다음은 towupper() 함수를 활용해 와이드 문자열 전체를 대문자로 변환하는 C++ 예제 코드입니다.
#include <cwchar>
#include <cwctype>
#include <iostream>
using namespace std;
int main() {
wchar_t s[] = L"hello world!";
wcout << L"The uppercase string : ";
for (int i = 0; i < wcslen(s); i++)
putwchar(towupper(s[i]));
return 0;
}실행 결과
The uppercase string : HELLO WORLD!
코드 설명
위 예제에서는 wchar_t 배열에 와이드 문자열 "hello world!"를 저장한 후, 반복문을 통해 문자열의 각 문자를 하나씩 순회합니다. 순회 과정에서 각 문자를 towupper() 함수에 전달하여 대문자로 변환한 뒤, putwchar() 함수를 이용해 화면에 출력합니다.
그 결과, 원래 소문자였던 "hello world!"가 모두 대문자인 "HELLO WORLD!"로 변환되어 출력되는 것을 확인할 수 있습니다.
참고 사항
towupper()와 이름이 비슷한 iswupper() 함수도 존재합니다. 두 함수의 차이는 다음과 같습니다.
- towupper(): 와이드 문자를 실제로 대문자로 변환하여 반환합니다.
- iswupper(): 전달된 와이드 문자가 대문자인지 여부만 검사하며, 참/거짓에 해당하는 값을 반환합니다.
따라서 문자의 종류를 판별할 때는 iswupper()를, 실제 변환 작업이 필요할 때는 towupper()를 사용하는 것이 올바른 방법입니다.