非常教程

C参考手册

字符串 | Strings

strcspn

在头文件<string.h>中定义

size_t strcspn(const char * dest,const char * src);

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

如果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函数(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函数

扩展内容

strspn

返回仅由另一个字节字符串(函数)中的字符组成的最大初始段的长度

wcscspn(C95)

返回仅由在另一个宽字符串(函数)中未找到的宽字符组成的最大初始段的长度

strpbrk

找到一个字符串中任何字符的第一个位置,另一个字符串(函数)

| strcspn 的C ++文档|

C

C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。