// =====================================================================================
//
// Filename: find_char.c
//
// Description: 在一个字符串中进行搜索,查找所有在一个给定字符集中初选的字符
//
// Version: 1.0
// Created: 16/10/2012 19:35:18
// Revision: none
// Compiler: g++
//
// Author: fakir (seek my rose), ishaofeng@foxmail.com
// Company:
//
// =====================================================================================
#include <stdio.h>
char * find_char(const char *source, const char *chars)
{
if (NULL == source || NULL == chars) {
return NULL;
}
char *p = &chars[0];
while (*source++ != '\0') {
while (*p++ != '\0') {
if (*p == *source) {
return source;
}
}
p = chars;
}
return NULL;
}
char *find_char_1(const char *source, const char *chars)
{
if (NULL == source || NULL == chars) {
return NULL;
}
//定义索引空间
int flag[256] = {0};
while (*chars++ != '\0') {
flag[*chars] = 1;
}
while (*source++ != '\0') {
if (1 == flag[*source]) {
return source;
}
}
return NULL;
}
int main()
{
char *source = "nihao";
char *chars = "bcdh";
char *ret = find_char(source, chars);
printf("%c\n", *ret);
char *ret1 = find_char_1(source, chars);
printf("%c\n", *ret1);
return 0;
}
strpbrk函数的两种实现
最新推荐文章于 2023-03-22 17:42:44 发布