strcspn_C语言中文网
| 定义于头文件 |
||
| size_t strcspn( const char *dest, const char *src ); |
||
返回 dest 所指向的空终止字节字符串的最大起始段长度,该段只由 src 所指向的空终止字节字符串中找不到的字符组成。
若 dest 或 src 不是指向空终止字节字符串的指针,则行为未定义。
参数
| 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
参阅
| 返回由另一个字符串中的字符分割的最大起始段长度 (函数) | |
| 返回仅由不出现于另一个宽字符串中的宽字符分隔的最长首段长度 (函数) | |
| 查找一个字符串中的任意一个字符在另一个字符串中的首个位置 (函数) |