C语言中strcpy()

本文详细讲解了strcpy函数的实现原理,包括如何处理空指针、数据区复制以及长度不足时的内存管理。重点介绍了strDest作为数据区而非常量的情况,并展示了如何正确使用malloc进行动态内存分配以完成字符串复制操作。
摘要由CSDN通过智能技术生成

strcpy函数的实现

char * strcpy(char *strDest,const char *strSrc)
{
	assert((strDest!=NULL)&&(strSrc!=NULL)); //断言两个指针都不是空指针
	char *address=strDest;                            //函数要返回复制后的字符串首地址
	while((*(strDest++)=*(strSrc++))!='\0');//连同结束符一起复制
	return address;                                         //返回复制后的字符串首地址
}

strDesc 必须为数据区,不能是常量

char *strDesc = “abcdefg”; //常量,无法复制
char strDesc[8] = “abcdefg”; // 数据区,无法复制

如果长度不够,

strDesc = (char *) malloc[目标长度+1]

str = (char *) malloc(15);

然后再:
strcpy(strDesc, strSrc)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值