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을 사용합니다. 이 함수는 멀티바이트 문자열이 아닌 와이드 문자열 처리에 적합하며, 유니코드 환경에서 문자 분류 작업 시 유용하게 활용됩니다.