std::strcspn

来自cppreference.com
< cpp‎ | string‎ | byte
定义于头文件 <cstring>
size_t strcspn( const char *dest, const char *src );

返回 dest 所指向的空终止字节字符串的最大起始段长度,该段只由 src 所指向的空终止字节字符串中找到的字符组成。

函数名代表“补集段 (complementary span) ”。

参数

dest - 指向要分析的空终止字节字符串的指针
src - 指向含有要搜索字符的空终止字节字符串的指针

返回值

仅由 src 所指向的空终止字节字符串中找不到的字符组成的最大起始段长度。

示例

#include <string>
#include <cstring>
#include <iostream>
 
const char* invalid = "*$#";
int main()
{
    std::string s = "abcde312$#@";
 
    size_t valid_len = std::strcspn(s.c_str(), invalid);
    if(valid_len != s.size())
       std::cout << "'" << s << "' contains invalid chars starting at position "
                 << valid_len << '\n';
}

输出:

'abcde312$#@' contains invalid chars starting at position 8

参阅

返回仅由另一字节字符串中找到的字符组成的最大起始段的长度
(函数)
返回仅由另一宽字符串中找到的宽字符组成的最大起始段的长度
(函数)
寻找任何来自分隔符集合的字符的首个位置
(函数)
寻找字符的首次出现
(std::basic_string<CharT,Traits,Allocator> 的公开成员函数)