标准C库中是否有strchr()的多字符版本?

时间:2010-07-15 16:39:09

标签: c parsing string

如果我想搜索特定字符的字符串,我可以执行以下操作

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 个答案:

答案 0 :(得分:20)

strpbrk怎么样?听起来很适合你的账单。

const char * strpbrk ( const char * str1, const char * str2 );

“返回指向str2中第一个出现的指针,该指针是str2中任何一个字符,如果没有匹配则返回空指针。”

编辑:链接到C ++站点,但strpbrk是标准C库的一部分。