Namespaces
Variants

std:: isgraph

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

주어진 문자가 현재 설치된 C 로캘에 따라 그래픽 문자(그래픽 표현을 가짐)인지 확인합니다. 기본 C 로캘에서 다음 문자들은 그래픽 문자입니다:

  • 숫자 ( 0123456789 )
  • 대문자 ( ABCDEFGHIJKLMNOPQRSTUVWXYZ )
  • 소문자 ( abcdefghijklmnopqrstuvwxyz )
  • 구두점 문자 ( !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ )

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

목차

매개변수

ch - 분류할 문자

반환값

문자가 그래픽 표현 문자를 가지면 0이 아닌 값, 그렇지 않으면 0입니다.

참고 사항

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

bool my_isgraph(char ch)
{
    return std::isgraph(static_cast<unsigned char>(ch));
}

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

int count_graphs(const std::string& s)
{
    return std::count_if(s.begin(), s.end(),
                      // static_cast<int(*)(int)>(std::isgraph)         // 잘못됨
                      // [](int c){ return std::isgraph(c); }           // 잘못됨
                      // [](char c){ return std::isgraph(c); }          // 잘못됨
                         [](unsigned char c){ return std::isgraph(c); } // 올바름
                        );
}

예제

#include <cctype>
#include <clocale>
#include <iostream>
int main()
{
    unsigned char c = '\xb6'; // ISO-8859-1에서 ¶ 문자
    std::cout << "isgraph(\'\\xb6\', default C locale) returned "
              << std::boolalpha << (std::isgraph(c) != 0) << '\n';
    std::setlocale(LC_ALL, "en_GB.iso88591");
    std::cout << "isgraph(\'\\xb6\', ISO-8859-1 locale) returned "
              << std::boolalpha << (std::isgraph(c) != 0) << '\n';
}

가능한 출력:

isgraph('\xb6', default C locale) returned false
isgraph('\xb6', ISO-8859-1 locale) returned true

참고 항목

로캘에 의해 그래픽 문자로 분류되는지 확인합니다
(함수 템플릿)
와이드 문자가 그래픽 문자인지 확인합니다
(함수)
C 문서 for isgraph
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