编写自己的strpbrk函数实现字符串检索

本文介绍了如何编写一个C语言函数,模仿C库中的strpbrk功能,实现在字符串中搜索给定字符集合中的字符。文章通过示例代码详细解释了函数的实现逻辑,并讨论了函数参数传递中的const修饰符使用,以及对比了C库中strpbrk的实现方式。
摘要由CSDN通过智能技术生成

编写函数,在一个字符串中进行搜索,查找所有在一个给定字符集合中出现的字符。

函数原型:

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;
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值