C 库函数 char *strpbrk(const char *str1, const char *str2) 检索字符串 str1 中第一个匹配字符串 str2 中字符的字符,不包含空结束字符。也就是说,依次检验字符串 str1 中的字符,当被检验字符在字符串 str2 中也包含时,则停止检验,并返回该字符位置。
int main() {
const char* str = "This is a sample string";
const char key[] = "aeiou";
const char* pch;
printf("Vowels in '%s':",str);
pch = strpbrk(str,key);
while (pch!=NULL) {
printf("%c",*pch);
pch = strpbrk(pch+1,key);
}
printf("\n");
return 0;
}
内部实现原理:
#include<stdio.h>
#include<string.h>
//内部实现原理 但是得注意const 这个问题
const char* Strpbrk(const char *s,const char*s2) {
while (*s)
{
const char* a = s2;
while (*a)
{
if (*a++==*s) {
return s;
}
}
s++;
}
return NULL;
}
int main() {
const char *str = "I welcome any ideas from readers, of course.";
const char *rc= Strpbrk(str,"come");
printf("%s\n",rc);
return 0;
}