strcspn

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

返回 dest 所指向的空终止字节字符串的最大起始段长度,该段只由 src 所指向的空终止字节字符串中找到的字符组成。

destsrc 不是指向空终止字节字符串的指针,则行为未定义。

参数

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

返回值

仅由 src 所指向的空终止字节字符串中找不到的字符组成的最大起始段长度。

注意

函数名代表“补集段 (complementary span) ”,因为函数搜索 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 standard (ISO/IEC 9899:2011):
  • 7.24.5.3 The strcspn function (p: 368)
  • C99 standard (ISO/IEC 9899:1999):
  • 7.21.5.3 The strcspn function (p: 331)
  • C89/C90 standard (ISO/IEC 9899:1990):
  • 4.11.5.3 The strcspn function

参阅

返回由另一个字符串中的字符分割的最大起始段长度
(函数)
返回仅由出现于另一个宽字符串中的宽字符分隔的最长首段长度
(函数)
查找一个字符串中的任意一个字符在另一个字符串中的首个位置
(函数)