Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C/C++ towupper() 함수 – 와이드 문자를 대문자로 변환하는 방법

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()를 사용하는 것이 올바른 방법입니다.