命名空间
变体
操作

strcspn

来自 cppreference.com
< c‎ | string‎ | byte
在头文件 <string.h> 中定义
size_t strcspn( const char *dest, const char *src );

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

如果 destsrc 不是指向以 null 结尾的字节字符串的指针,则行为未定义。

内容

[编辑] 参数

dest - 指向要分析的以 null 结尾的字节字符串的指针
src - 指向包含要搜索的字符的以 null 结尾的字节字符串的指针

[编辑] 返回值

最大初始段的长度,该段仅包含在指向由 src 指向的以 null 结尾的字节字符串中未找到的字符

[编辑] 说明

函数名称代表“补集跨度”,因为该函数搜索在 src 中未找到的字符,即 src 的补集。

[编辑] 示例

#include <string.h>
#include <stdio.h>
 
int main(void)
{
    const char *string = "abcde312$#@";
    const char *invalid = "*$#";
 
    size_t valid_len = strcspn(string, invalid);
    if(valid_len != strlen(string))
       printf("'%s' contains invalid chars starting at position %zu\n",
               string, valid_len);
}

输出

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

[编辑] 参考文献

  • C11 标准 (ISO/IEC 9899:2011)
  • 7.24.5.3 strcspn 函数 (p: 368)
  • C99 标准 (ISO/IEC 9899:1999)
  • 7.21.5.3 strcspn 函数 (p: 331)
  • C89/C90 标准 (ISO/IEC 9899:1990)
  • 4.11.5.3 strcspn 函数

[编辑] 另请参见

返回仅包含在另一个字节字符串中找到的字符的最大初始段的长度
of only the characters found in another byte string
(function) [编辑]
返回仅包含在另一个字节字符串中找到的字符的最大初始段的长度
仅返回在另一个宽字符串中找到的宽字符的最大初始段的长度
(function) [编辑]
在另一个字符串中找到一个字符串中的任何字符的第一个位置
(function) [编辑]
C++ 文档 for strcspn