strchr、strrchr、strrstr的实现

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
char *my_strchr(const char *dst, char c)
{
	assert(dst);
	const char *pdst = dst;
	while (*pdst)
	{
		if (*pdst == c)
			return (char *)pdst;
		else
			pdst++;
	}
	return NULL;
}
int main()
{
	char c=0;
	char arr[40]={0};
	char * = NULL;
	scanf("%c", &c);
	scanf("%s", arr);
	str=my_strchr(arr, c);
	printf("%#p\n",*str);
	system("pause");
	return 0;
}


#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
char *my_strrchr(const char *src, char c)
{
	assert(src);
	const char *psrc = src;
	char *dst = NULL;
	while (*psrc)
	{
		if (*psrc == c)
			dst =(char *) psrc;
		psrc++;
	}
	return dst;
}
int main()
{
	char c = 0;
	char arr[40];
	char *place = NULL;
	scanf("%c%s", &c, arr);
	place = my_strrchr(arr, c);
	printf("%#p\n",place);
	system("pause");
	return 0;
}


//strrstr库里面没有
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
char *my_strrstr(const char *dst, const char *src)
{
	assert(dst);
	assert(src);
	const char *pdst = dst;
	const char *psrc = src;
	char *right= NULL;
	while (*dst)
	{
		while (*pdst == *psrc)
		{
			if (*pdst== '\0')
				return right=(char *)dst;
			else
			{
				pdst++;
				psrc++;
			}
		}
		if (*psrc == '\0')
			right = (char *)dst;
		pdst = ++dst;
		psrc = src;
	}
	return right;
}
int main()
{
	char arr1[50] = { 0 };
	char arr2[40] = { 0 };
	char *place = NULL;
	scanf("%s%s",arr1, arr2);
	place = my_strrstr(arr1, arr2);
	printf("%#p\n",place);
	system("pause");
	return 0;
}

本文名称:strchr、strrchr、strrstr的实现
标题路径:https://www.cdcxhl.com/article10/gpeogo.html

成都网站建设公司_创新互联,为您提供云服务器标签优化网站收录网站营销网站设计动态网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设