c语言远征之基础篇

C语言远征第十五天

这次将string库函数自己编程实现

1.实现strstr

//模拟实现strstr
const char * Strstr(const char str1[], const char str2[])
{
	for (int i = 0; str1[i] != '\0'; ++i)
	{
		int j = i;
		int z = 0;
		while (str1[j] == str2[z])
		{
			j++; 
			z++;
		}
		if (str2[z] == '\0')
		{
			return &str2[i];
		}
		else
		{
			z = 0;
		}
	}
	return NULL;
}

2.实现strchr

char *Strchr(const char *str1, int cha)
{
	for (; *str1 != '\0'; ++str1)
	{
		if (*str1 == cha)
		{
			return str1;
		}
	}
	return NULL;
}

3.实现strcmp

//模拟实现strcmp
int Strcmp(const char* str1,const char* str2)
{
	for (str1,str2; *str1 != '\0'&& *str2 != '\0'; ++str1,++str2)
	{
		if (*str1 == *str2)
		{
			continue;
		}
		else if (*str1 < *str2)
		{
			return -1;
		}
		else
		{
			return 1;
		}
	}
	return 0;
}

4.实现memcpy

//模拟实现memcpy
void * Memcpy(void * dest, const void * src, size_t num)
{
	char *a = (char *)dest;
	const char *b = (const char *)src;
	for (;num>0;--num)
	{
		*a = *b;
		a++;
		b++;
	}
	return dest;
}

5.实现memmove

//模拟实现memmove
void * Memmove(void * dest, const void * src, size_t num)
{
	char *a = (char *)dest;
	const char *b = (const char *)src;
	for (; num > 0; --num)
	{
		*(a + num - 1) = *(b + num - 1);
	}
	return dest;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值