标准 C 库中是不是有 strchr() 的多字符版本?
Posted
技术标签:
【中文标题】标准 C 库中是不是有 strchr() 的多字符版本?【英文标题】:Is there a multiple character version of strchr() in the standard C libraries?标准 C 库中是否有 strchr() 的多字符版本? 【发布时间】:2010-07-15 16:39:09 【问题描述】:在 c 中,如果我想在字符串中搜索特定字符,我可以执行以下操作
char *p;
p = (char *)strchr(buffer,'(');
if(p)
....
但是如果我想搜索多个字符(或字符范围),例如“任意数字”,该怎么办。我知道我可以做类似的事情
char *p=0;
char *i;
for(i=buffer;*i!='\0';i++)
if(*i >= '0' && *i <=9)
p=i;
if(p)
...
假设一个正确终止的字符串等。但是是否有一个标准库函数已经提供了这个功能(希望更安全)
【问题讨论】:
【参考方案1】:strpbrk 呢?听起来它符合您的要求。
const char * strpbrk ( const char * str1, const char * str2 );
“返回指向 str1 中第一次出现的 str2 中任何字符的指针,如果没有匹配则返回空指针。”
编辑:链接指向 C++ 站点,但 strpbrk
是标准 C 库的一部分。
【讨论】:
谢谢。我认为这正是我所需要的。 +1- 很好的答案。完全符合要求并在 OP 的约束范围内。以上是关于标准 C 库中是不是有 strchr() 的多字符版本?的主要内容,如果未能解决你的问题,请参考以下文章