Namespaces
Variants

std::ctype <char> :: scan_is

From cppreference.net
헤더 파일에 정의됨 <locale>
const char * scan_is ( mask m, const char * beg, const char * end ) const ;
(1)

문자 배열 [ beg , end ) 에서 분류 마스크 m 를 만족하는 첫 번째 문자를 찾습니다. 즉, table ( ) [ ( unsigned char ) c ] & m true 를 반환하는 첫 번째 문자 c 를 찾습니다.

만약 ( unsigned char ) c >= std:: ctype < char > :: table_size 인 경우, 구현에서 정의된 값이 table ( ) [ ( unsigned char ) c ] 대신 사용되며, 이 값은 c 값에 따라 서로 다를 수 있습니다.

목차

매개변수

m - 검색할 마스크
beg - 검색할 문자 배열의 첫 번째 문자에 대한 포인터
end - 검색할 문자 배열의 끝 다음 위치를 가리키는 포인터

반환값

마스크를 만족하는 첫 번째 문자에 대한 포인터를 [ beg , end ) 범위 내에서 반환하며, 해당 문자가 없을 경우 end 를 반환합니다.

참고 사항

기본 템플릿 std:: ctype 과 달리, 이 특수화는 문자를 분류할 때 가상 함수 호출을 수행하지 않습니다. 동작을 사용자 정의하려면 파생 클래스가 기본 클래스 생성자에 기본이 아닌 분류 테이블을 제공할 수 있습니다.

예제

#include <iostream>
#include <iterator>
#include <locale>
int main()
{
    std::locale loc("");
    auto& f = std::use_facet<std::ctype<char>>(loc);
    // 첫 번째 문자까지 건너뛰기
    char s1[] = "      \t\t\n  Test";
    const char* p1 = f.scan_is(std::ctype_base::alpha, std::begin(s1), std::end(s1));
    std::cout << '\'' << p1 << "'\n";
    // 첫 번째 문자까지 건너뛰기
    char s2[] = "123456789abcd";
    const char* p2 = f.scan_is(std::ctype_base::alpha, std::begin(s2), std::end(s2));
    std::cout << '\'' << p2 << "'\n";
}

출력:

'Test'
'abcd'

참고 항목

[virtual]
시퀀스에서 주어진 분류에 부합하는 첫 번째 문자를 찾습니다
( std::ctype<CharT> 의 virtual protected member function)
분류 테이블을 사용하여 주어진 분류에 실패하는 시퀀스의 첫 번째 문자를 찾습니다
(public member function)