Namespaces
Variants

std:: isalnum

From cppreference.net
헤더 파일에 정의됨 <cctype>
int isalnum ( int ch ) ;

주어진 문자가 현재 C 로캘에서 분류된 영숫자 문자인지 확인합니다. 기본 로캘에서 다음 문자들은 영숫자입니다:

  • 숫자 ( 0123456789 )
  • 대문자 ( ABCDEFGHIJKLMNOPQRSTUVWXYZ )
  • 소문자 ( abcdefghijklmnopqrstuvwxyz )

ch 값이 unsigned char 로 표현 가능하지 않고 EOF 와 같지 않을 경우 동작은 정의되지 않습니다.

목차

매개변수

ch - 분류할 문자

반환값

문자가 알파벳 문자인 경우 0이 아닌 값, 0 그렇지 않은 경우.

참고 사항

<cctype> 의 다른 모든 함수들과 마찬가지로, std::isalnum 의 동작은 인수 값이 unsigned char 로 표현 가능하지도 않고 EOF 와 같지도 않을 경우 정의되지 않습니다. 일반 char (또는 signed char )에서 이러한 함수를 안전하게 사용하려면, 인수를 먼저 unsigned char 로 변환해야 합니다:

bool my_isalnum(char ch)
{
    return std::isalnum(static_cast<unsigned char>(ch));
}

마찬가지로, 반복자의 값 타입이 char 또는 signed char 인 경우 표준 알고리즘과 직접 사용해서는 안 됩니다. 대신 값을 먼저 unsigned char 로 변환하십시오:

int count_alnums(const std::string& s)
{
    return std::count_if(s.begin(), s.end(),
                      // static_cast<int(*)(int)>(std::isalnum)         // 잘못됨
                      // [](int c){ return std::isalnum(c); }           // 잘못됨
                      // [](char c){ return std::isalnum(c); }          // 잘못됨
                         [](unsigned char c){ return std::isalnum(c); } // 정확함
                        );
}

예제

다양한 로케일(OS별)에서 std::isalnum 사용법을 보여줍니다.

#include <cctype>
#include <clocale>
#include <iostream>
int main()
{
    unsigned char c = '\xdf'; // German letter ß in ISO-8859-1
    std::cout << "isalnum(\'\\xdf\', default C locale) returned "
              << std::boolalpha << static_cast<bool>(std::isalnum(c)) << '\n';
    if (std::setlocale(LC_ALL, "de_DE.iso88591"))
        std::cout << "isalnum(\'\\xdf\', ISO-8859-1 locale) returned "
                  << static_cast<bool>(std::isalnum(c)) << '\n';
}

가능한 출력:

isalnum('\xdf', default C locale) returned false
isalnum('\xdf', ISO-8859-1 locale) returned true

참고 항목

로캘에 의해 영숫자로 분류되는지 확인합니다
(함수 템플릿)
와이드 문자가 영숫자인지 확인합니다
(함수)
C 문서 for isalnum
**번역 설명:** - 숫자 범위 "33–47"은 그대로 유지 (숫자는 번역하지 않음) - ` ` 태그 내의 모든 내용(\x21, \x2F, \41, \57, !"#$%&'()*+,-./, 0, ≠0)은 번역하지 않고 원본 유지 - HTML 태그와 속성은 완전히 보존 - 수학 기호 "≠"는 C++ 관련 용어로 간주하여 번역하지 않음 - 대시(-) 문자는 원본 형식대로 유지
ASCII 값 문자

iscntrl
iswcntrl

isprint
iswprint

isspace
iswspace

isblank
iswblank

isgraph
iswgraph

ispunct
iswpunct

isalnum
iswalnum

isalpha
iswalpha

isupper
iswupper

islower
iswlower

isdigit
iswdigit

isxdigit
iswxdigit

십진법 16진법 8진법
0–8 \x0 \x8 \0 \10 제어 코드 ( NUL 등) ≠0 0 0 0 0 0 0 0 0 0 0 0
9 \x9 \11 탭 ( \t ) ≠0 0 ≠0 ≠0 0 0 0 0 0 0 0 0
10–13 \xA \xD \12 \15 공백 문자 ( \n , \v , \f , \r ) ≠0 0 ≠0 0 0 0 0 0 0 0 0 0
14–31 \xE \x1F \16 \37 제어 코드 ≠0 0 0 0 0 0 0 0 0 0 0 0
32 \x20 \40 공백 0 ≠0 ≠0 ≠0 0 0 0 0 0 0 0 0
33–47 \x21 \x2F \41 \57 !"#$%&'()*+,-./ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
48–57 \x30 \x39 \60 \71 0123456789 0 ≠0 0 0 ≠0 0 ≠0 0 0 0 ≠0 ≠0
58–64 \x3A \x40 \72 \100 :;<=>?@ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
65–70 \x41 \x46 \101 \106 ABCDEF 0 ≠0 0 0 ≠0 0 ≠0 ≠0 ≠0 0 0 ≠0
71–90 \x47 \x5A \107 \132 GHIJKLMNOP
QRSTUVWXYZ
0 ≠0 0 0 ≠0 0 ≠0 ≠0 ≠0 0 0 0
91–96 \x5B \x60 \133 \140 [\]^_` 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
97–102 \x61 \x66 \141 \146 abcdef 0 ≠0 0 0 ≠0 0 ≠0 ≠0 0 ≠0 0 ≠0
103–122 \x67 \x7A \147 \172 ghijklmnop
qrstuvwxyz
0 ≠0 0 0 ≠0 0 ≠0 ≠0 0 ≠0 0 0
123–126 \x7B \x7E \172 \176 {|}~ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
127 \x7F \177 백스페이스 문자 ( DEL ) ≠0 0 0 0 0 0 0 0 0 0 0 0