C

strpbrk

strpbrk

在头文件中定义
char * strpbrk(const char * dest,const char * breakset);

扫描由dest指向的以NULL结尾的字节字符串,以查找由breakset指向的以null结尾的字节字符串中的任何字符,并返回指向该字符的指针。

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

参数

dest-指向要分析的空字符串字符串的指针
breakset-指向包含要搜索的字符的以空字符结尾的字节字符串

返回值

指向dest中第一个字符的指针,也就是breakset;如果不存在这样的字符,则指向空指针。

注意

该名称代表“字符串指针中断”,因为它返回指向第一个分隔符(“中断”)字符的指针。

#include <stdio.h> #include <string.h> int main(void) { const char* str = "hello world, friend of mine!"; const char* sep = " ,!"; unsigned int cnt = 0; do { str = strpbrk(str, sep // find separator if(str) str += strspn(str, sep // skip separator ++cnt; // increment word count } while(str && *str printf("There are %d words\n", cnt }

输出:

There are 5 words

参考

  • C11标准(ISO / IEC 9899:2011):

扩展内容

strcspn返回最大初始段的长度,该最大初始段只包含在另一个字节字符串中找不到的字符(函数)
strchr找到第一个出现的字符(函数)
strtokstrtok_s(C11)在字节字符串(函数)中查找下一个标记

| strpbrk的C ++文档 |