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

标签 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){
    ...

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

最佳答案

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

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

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

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

关于c - 标准 C 库中是否有 strchr() 的多字符版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3257809/

相关文章:

java - java bukkit 将字符串转换为 ItemStack

python - 如何从 Python 中的字符串中提取字符?

c++ - 我正在尝试使用函数 _snwprintf

c - 在 C 中访问二维数组的元素

c - 整数指针缓冲区跳过索引

algorithm - 关于递归下降解析器的复杂性

java - JSOUP同时提取多个元素

java - 在 Parse 数据浏览器中安全存储用户的余额

c - 设置 UTF-8 语言环境后使用 fgetws?

arrays - 当字符与前一个字符不同时,在 ruby​​ 中分割字符串