Namespaces
Variants

std:: strcspn

From cppreference.net
定义于头文件 <cstring>
std:: size_t strcspn ( const char * dest, const char * src ) ;

返回指向的字节字符串 dest 的最大初始片段的长度,该片段仅包含未在指向的字节字符串 src 中找到的字符。

函数名称代表"互补跨度"。

目录

参数

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

返回值

最大初始段的长度,该段仅包含未在字节字符串 src 所指向的内容中出现的字符。

示例

#include <cstddef>
#include <cstring>
#include <iomanip>
#include <iostream>
#include <string>
int main()
{
    std::string s = "abcde312$#@";
    const char* invalid = "*$#";
    const std::size_t valid_len = std::strcspn(s.c_str(), invalid);
    if (valid_len != s.size())
    {
        std::cout << std::quoted(s)
                  << " 包含无效字符,起始位置为 "
                  << valid_len << '\n'
                  << std::string(valid_len + 1, '-') << "^\n";
    }
}

输出:

"abcde312$#@" 包含无效字符,起始位置为 8
---------^

参见

返回仅包含另一字节字符串中字符的最大初始段长度
(函数)
返回仅包含另一宽字符串中 出现的宽字符的最大初始段长度
(函数)
查找分隔符集中任意字符的首次出现位置
(函数)
查找字符的首次出现
( std::basic_string<CharT,Traits,Allocator> 的公开成员函数)
C 文档 for strcspn