char*类型的字符串相加

本文深入探讨了C/C++中使用strcpy()和strcat()函数进行字符串操作的方法,解析了两者的功能差异及应用场景,强调了在字符串操作中正确处理结束符的重要性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

char类型的字符串相加一般用到两个函数:strcpy()函数和strcat()函数
原型:
char *strcpy(char *dest,const char *src);
extern char *strcat(char *dest,const char *src);
strcpy()函数的意思是把字符串src的内容复制到字符串dest,并返回一个char
类型的字符串,默认含结束符‘\0’。需要注意的是dest剩余空间必须大于等于src字符串长度+1,最后的1就是为了存储结束符。
strcat()函数和strcpy()函数非常类似,但稍有不同,在这里面是字符串src的内容复制到字符串dest结尾,并返回一个含结束符的char*类型的字符串,同样要满足dest剩余空间大于等于src字符串长度+1。
区别在于:
strcpy()函数是把字符串复制到指定地址,如果原有dest字符串中有其他内容,会被覆盖掉,相当于先把dest清空再复制src的内容。而strcat()函数是把字符串复制到dest的后面,相当于字符串相加。
看下面的例子:
在这里插入图片描述
在这里面_a输出内容为add,覆盖了原有的test。

这里面出现一个问题就是如果将d的长度正好设置成a,b,c相加的长度,也就是不考虑最后的结束符,并没有出现溢出现象,运行结果仍然正确,不知道是不是因为C和C++的标准不一样,或者也有可能是VS的版本问题?我用的是VS2010。关于这个问题希望能够得到大家的解答。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值