C

strcspn

strcspn

在头文件中定义
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):

扩展内容

strspn返回仅由另一个字节字符串(函数)中的字符组成的最大初始段的长度
wcscspn(C95)返回仅由在另一个宽字符串(函数)中未找到的宽字符组成的最大初始段的长度
strpbrk找到一个字符串中任何字符的第一个位置,另一个字符串(函数)

| strcspn 的C ++文档|