命名空间
变体
操作

std::strcspn

来自 cppreference.com
< cpp‎ | string‎ | byte
定义在头文件 <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)
                  << " contains invalid chars starting at position "
                  << valid_len << '\n'
                  << std::string(valid_len + 1, '-') << "^\n";
    }
}

输出

"abcde312$#@" contains invalid chars starting at position 8
---------^

[编辑] 参见

返回由另一个字节字符串中的字符组成的最大初始段的长度
仅由另一个字节字符串中的字符组成
(函数) [编辑]
返回由另一个字节字符串中的字符组成的最大初始段的长度
仅由另一个宽字符串中找不到的宽字符组成
(函数) [编辑]
查找一组分隔符中任何字符的第一个位置
(函数) [编辑]
查找字符的第一个出现位置
(std::basic_string<CharT,Traits,Allocator> 的公有成员函数) [编辑]
C 文档 for strcspn