std::ctype<char>::scan_is
STD::Ctype<char>*扫描[医]是
Defined in header | | |
---|---|---|
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
,此专门化在对字符进行分类时不执行虚拟函数调用。要自定义行为,派生类可以向基类构造函数提供非默认的分类表。
例
二次
#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";
}
二次
产出:
二次
'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) |
© cppreference.com
在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。