Namespaces
Variants

std::ctype <char> :: scan_not

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

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

만약 ( 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()
{
    auto& f = std::use_facet<std::ctype<char>>(std::locale());
    // 선행 공백 건너뛰기
    char s1[] = "      \t\t\n  Test";
    const char* p1 = f.scan_not(std::ctype_base::space, std::begin(s1), std::end(s1));
    std::cout << '\'' << p1 << "'\n";
    // 선행 숫자 건너뛰기
    char s2[] = "123456789abcd";
    const char* p2 = f.scan_not(std::ctype_base::digit, std::begin(s2), std::end(s2));
    std::cout << '\'' << p2 << "'\n";
}

출력:

'Test'
'abcd'

참고 항목

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