码迷,mamicode.com
首页 > 其他好文 > 详细

strchr 、 strrchr 、strrstr的实现

时间:2016-05-07 16:48:31      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:字符查找

#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;
}


本文出自 “11132019” 博客,请务必保留此出处http://11142019.blog.51cto.com/11132019/1770998

strchr 、 strrchr 、strrstr的实现

标签:字符查找

原文地址:http://11142019.blog.51cto.com/11132019/1770998

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!