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

C++ STL의 iswalnum() 함수: 와이드 문자 영숫자 판별 완벽 가이드

C++ STL에서 제공하는 iswalnum() 함수는 주어진 와이드 문자(wide character)가 영숫자(alphanumeric)인지 검사하는 함수입니다. 여기서 영숫자란 숫자(0~9), 대문자(A~Z), 소문자(a~z) 등 알파벳과 숫자에 해당하는 모든 문자를 의미합니다.

해당 문자가 영숫자이면 0이 아닌 값(true)을 반환하고, 그렇지 않으면 0(false)을 반환합니다.

동작 원리

  • 검사할 와이드 문자를 초기화합니다.
  • iswalnum(c) 함수를 호출하여 해당 문자가 영숫자인지 확인합니다.
  • 문자가 영숫자이면 0이 아닌 값을 반환하고, 영숫자가 아니면 0을 반환합니다.

예제 코드

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

int main() {
    wchar_t c1 = '/';
    wchar_t c2 = 'a';

    if (iswalnum(c1))
        wcout << c1 << " is alphanumeric ";
    else
        wcout << c1 << " is not alphanumeric ";
    wcout << endl;

    if (iswalnum(c2))
        wcout << c2 << " is alphanumeric ";
    else
        wcout << c2 << " is not alphanumeric ";

    return 0;
}

실행 결과

/ is not alphanumeric
a is alphanumeric

코드 설명

위 예제에서는 두 개의 와이드 문자 변수를 선언했습니다. 첫 번째 문자 c1은 특수문자 '/'로, 두 번째 문자 c2는 소문자 'a'로 초기화되었습니다.

iswalnum() 함수를 각각 호출한 결과, 특수문자 '/'는 영숫자가 아니므로 조건문의 else 블록이 실행되어 "is not alphanumeric"이 출력됩니다. 반면 소문자 'a'는 영숫자에 해당하므로 "is alphanumeric"이 출력됩니다.

참고 사항

iswalnum() 함수를 사용하려면 헤더 파일 <cwctype>을 포함해야 하며, 와이드 문자 출력을 위해 wcout을 사용합니다. 이 함수는 멀티바이트 문자열이 아닌 와이드 문자열 처리에 적합하며, 유니코드 환경에서 문자 분류 작업 시 유용하게 활용됩니다.