Namespaces
Variants

strcspn

From cppreference.net
< c ‎ | string ‎ | byte
定义于头文件 <string.h>
size_t strcspn ( const char * dest, const char * src ) ;

返回以 dest 指向的空终止字节字符串的最大初始段长度,该段仅包含 出现在以 src 指向的空终止字节字符串中的字符。

dest src 不是指向以空字符结尾的字节字符串的指针,则行为未定义。

目录

参数

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

返回值

最大初始段的长度,该段仅包含在由 src 指向的空终止字节字符串中未出现的字符

注释

函数名称代表“互补区间”,因为该函数查找在 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 函数 (第 368 页)
  • C99 标准 (ISO/IEC 9899:1999):
  • 7.21.5.3 strcspn 函数 (第 331 页)
  • C89/C90 标准 (ISO/IEC 9899:1990):
  • 4.11.5.3 strcspn 函数

参见

返回仅包含另一字节字符串中字符的最大起始段长度
(函数)
(C95)
返回仅包含另一宽字符串中 找到字符的最大起始段长度
(函数)
在一个字符串中查找另一个字符串中任何字符的首个位置
(函数)
C++ 文档 关于 strcspn