字符串拷贝的不同实现方法

将字符串src拷贝到des

1.

void Mystrcpy1(char *des,char*src)
{
	int i;
	for(i=0;src[i]!='\0';i++)//*(src+i)
	{
		des[i] = src[i];
	}
	des[i] = '\0';
}

通过i++遍历字符串src直到字符串的结束标识‘\0’。最后给des加上结束标志‘\0’

2.

​
void Mystrcpy2(char *des,char*src)
{
	int i;
	for(i=0; *(src+i);i++)
	{
		*(des+i) = *(src+i);
	}
	*(des+i) = '\0';
}

​

通过指针+1的方式将str中的字符一个一个赋值给des。

3.

void Mystrcpy3(char *des,char*src)
{
	while(*src != '\0')
	{
		*des = *src;
		des++;
		src++;
	}
	*des = '\0';
}

当*src!=0是 循环执行

a.将src地址赋值给des;

b.des和src都向后走。

4.

void Mystrcpy4(char *des,char*src)
{
	while(*src != '\0')
	{
		*des++ = *src++;//等价*(des++) = *(src++);
	}
	*des = '\0';
}

与方法3相似,把++直接写入指针中。

5.

void Mystrcpy(char *des,char *src)
{
	while(*des++ = *src++);//字符串拷贝,经常考试
}

用一句代码实现字符串拷贝时,用到此方法。

 

主函数:

​
int main()
{
	char str1[100] = "";
	char str2[] = "abcde";
	Mystrcpy(str1,str2);//char*,char *
	printf("%s\n",str1);

	
	return 0;
}

​

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值