【C语言】 两种不同的方法在一个字符串中找指定的字符

在标准库中已经给出strchar  和 strrchr 两个函数可以很直接调用。

函数原型如下

<span style="font-size:24px;">char *strchr(char const *str,int ch)
char *strrchr(char const *str,int ch)
</span>

在这里它们的第二个参数是整型值,在程序中是以 ASCII 值存在的。strchr函数是在字符串str中找字符ch第一次出现的位置,找到后返回指向该位置的指针,如果没找到返回NULL。而strrchr函数与strchr功能一致,只是返回的是指向该字符最后一次出现的位置。

现自定义实现strrchr函数的功能

主要思路:定义字符串指针right指向字符串str最后一个,然后一直向前找,循环的条件right>str

代码如下:


#include<stdio.h>
#include<string.h>
#include<assert.h>
char* my_strrchr(char *str,int ch)
{
	
     int len=strlen(str);
     char *right=str+len-1;
     assert(str!=NULL);
     while(right>=str)
	{
		if(*right==ch)
			return  right;
		right--;
	}
	return NULL;
}
int main()
{
	char q[15]="hello world!";
	char *ans;
        ans=my_strrchr(q,'4');
	if(ans!=NULL)
		printf("%c\n",*ans);
	else
		printf("无此字符。\n");
	return 0;
}





 

运行结果:

成功找个此字符:



没有找到字符:




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值