【问题标题】: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){
    ...

假设一个正确终止的字符串等。但是是否有一个标准库函数已经提供了这个功能(希望更安全)

【问题讨论】:

    标签: c parsing string


    【解决方案1】:

    strpbrk 呢?听起来它符合您的要求。

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

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

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

    【讨论】:

    • 谢谢。我认为这正是我所需要的。
    • +1- 很好的答案。完全符合要求并在 OP 的约束范围内。
    猜你喜欢
    • 2011-04-25
    • 2013-07-03
    • 2021-05-10
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-17
    • 1970-01-01
    相关资源
    最近更新 更多