如果我想在字符串中搜索特定字符,我可以执行以下操作
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/