模拟实现strncpy,模拟实现strncat,模拟实现strcmp

模拟实现strncpy

1.strncpy,是编程语言中的一个函数,它的功能是将字符串src中最多n个字符复制到字符数组dest中(它并不像strcpy一样只有遇到NULL才停止复制,而是多了一个条件停止,就是说如果复制到第n个字符还未遇到NULL,也一样停止),返回指向dest的指针。

#include<stdio.h>
char* my_strncpy(char* dest,const char* src,int count)
{
    char* ret = dest;
	while(count && (*dest++ = *src++))
	{
		count--;
	}
	if(count)//如果拷贝的个数小于字符串的个数用0补齐
		while(--count)
			*dest = '\0';
    return ret;
}
int main()
{
     char arr[20] = "abcdefghi"; 
	 printf("%s",my_strncpy(arr,"hello",3));
	 return 0;
}

模拟实现strcat

2.把src所指字符串的前n个字符添加到dest结尾处(覆盖dest结尾处的’\0’)并添加’\0’。

#include<stdio.h>
char* my_strncat(char* dest,char* src,int count)
{
   char* ret = dest;
	while(*dest != '\0')
	{
		*dest++;
	}
	while(count--&&(*dest++ = *src++))
	{
		;
	}
	return ret;

}
int main()
{
	char arr[20] = "hello ";
	my_strncat(arr,"world 555",5);
	printf("%s",arr);
	return 0;
}

模拟实现strcmp

3.strncmp是一个函数名,这个函数用来比较s1和s2字符串,这个函数将返回一个值

#include<stdio.h>
#include<assert.h>
int my_strncmp(const char* dest,const char* src,int count)
{
	assert(dest);
	assert(src);
	while(count--&&(*dest == *src))
		if(*dest == '\0')
		{
			return 0;
		}
    return *dest-*src;
}
int main()
{
	char arr1[20] = "aaahello";
	char arr2[20] = "aaaworld";
	printf("%d\n",my_strncmp(arr1,arr2,3));
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值