首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

std::ctype<char>::scan_is

Defined in header <locale>

?

?

const char* scan_not (mask m, const char* beg, const char* end) const;

(1)

?

定位字符数组中的第一个字符。[beg, end)不满足分类掩码的m,也就是第一个角色c使...table()[(unsigned char)c] & m会回来false...

如果(unsignedchar)c >=std::ctype<char>::table_size,则替换一个实现定义的值,而不是table()[(unsigned char)c]的值不同,可能会有所不同。c...

参数

m

-

mask to search for

beg

-

pointer to the first character in an array of characters to search

end

-

one past the end pointer for the array of characters to search

返回值

中的第一个字符的指针。[beg, end)不能满足面具的要求,或者end如果没有找到这样的角色。

注记

与主模板不同std::ctype,此专门化在对字符进行分类时不执行虚拟函数调用。要自定义行为,派生类可以向基类构造函数提供非默认的分类表。

二次

代码语言:javascript
复制
#include <locale>
#include <iostream>
#include <iterator>
 
int main()
{
    auto& f = std::use_facet<std::ctype<char>>(std::locale(""));
 
    // skip leading whitespace
    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";
 
    // skip leading digits
    char s2[] = "123456789abcd";
    const char* p2 = f.scan_not(std::ctype_base::digit, std::begin(s2), std::end(s2));
    std::cout << "'" << p2 << "'\n";
}

二次

产出:

二次

代码语言:javascript
复制
'Test'
'abcd'

二次

另见

do_scan_not virtual

locates the first character in a sequence that fails given classification (virtual protected member function of std::ctype)

scan_is

locates the first character in a sequence that conforms to given classification, using the classification table (public member function)

代码语言:txt
复制
 ? cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com