错哪儿了???用STRACT函数将两个字符串连接起来

eqboybyt
2013-10-11 · TA获得超过5294个赞
知道小有建树答主
回答量:1017
采纳率:0%
帮助的人:2441万
展开全部
你这段程序有二个概念性错误 (1)没有分清字符串和字符数组的区别: char* a=abcde;定义的是个字符串,它是一个占用了6个字节的字符串,其中前面5个保存:abcde,最后一个是\0(编译器自动加的);char str1[80]=This is a 定义了一个字符数组,可以保存80个字符,编译器不会加\0;你需要在后面手工加上; (2)没有分清函数定义和调用函数的区别: char *stract(str1,str2);这是定义了一个函数,这个函数的名称和系统的函数名称strcat刚好一样,不是调用函数;这个函数需要你自己去实现,你这里没有实现; stract(str1,str2)是调用函数strcat,编译器会按照你定义的头文件顺序去找; 由于你定义了str1和str2长度为80,因此后面的存储区均是0,因此,显示结果没有问题,如果你将str2长度定义为9个(你的后面字符串的长度,你就会发先第一个显示结果会降str1也打印出来,原因是你没有给str2加上\0;建议你注意这个问题,这就是臭名昭著的缓冲区溢出漏洞的来源之一。你由于仅仅是定义了strcat函数,因此你的输出仍然是str1
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式