编写函数,在一个字符串中进行搜索,查找所有在一个给定字符集合中出现的字符。
函数原型:
char *find_char(char const *source, char const *chars) {
基本思路是查找source字符串中匹配chars字符串中任意字符的第一个字符,函数返回一个指向source中第一个匹配所找到得位置的指针。如果source中的所有字符均不匹配chars中的任何一个字符,函数就返回一个NULL指针。如果任何一个参数为NULL,或者任何一个参数所指向的字符串位空,函数也返回一个NULL指针。
eg: 假设source指向"ABCDEF"。如果chars指向"XYZ", “JURY” 或者“QQQQ” ,函数就返回NULL,如果chars指向XRCQEF,函数就返回一个指向source中'C'字符的指针。
参数所指向的字符串是绝不会被修改的。
这个需求就是C库函数中strpbrk这个函数。
注意:不使用任何C库函数。
简单的实现如下(这里我打印出了整个查找过程,方便理解):
char *find_char(char const *source, char const *chars) {
if (source != NULL && chars != NULL) {
while (*source != '\0') {
char *p = chars;