自己动手编写代码实现strpbrk()函数。strpbrk()函数是干什么的呢?
strpbrk()函数解释如下:
strpbrk是在源字符串(s1)中找出最先含有搜索字符串(s2)中任一字符的位置并返回,若找不到则返回空指针。
返回s1中第一个满足条件的字符的指针,如果没有匹配字符则返回空指针NULL。
题目要求:
请编写一个函数,它在一个字符串中进行搜索,查找所有在一个给定字符集合中出现的字符。这个函数的原型应该如下:
char *find_char(char const *source,char const *chars);
实现方式如下:
char const *find_char(char const *source,char const *chars)
{
char const *stringChars = NULL;//存储我们要查找的字符串
if(source == NULL || chars ==NULL)
{
return NULL;
}
while(*source!='\0')
{
stringChars = chars;//始终将stringChars初始化为chars
while(*stringChars != '\0')
{
if(*source==*stringChars)
{
return (char *)source;
}
stringChars++;
}
source++;
}
}
测试:
#include<stdio.h>
int main()
{
char *s1="ABCDEF";
char *s2="HRBFG";
char const *p;
p=find_char(s1,s2);
if(p)
{
printf("%s\n",p);
}
else
{
printf("Not Found!\n");
}
return 0;
}
输出结果:
BCDEF