C语言 编写函数;void strcat(char *str1,char *str2),功能是将字串接到str2接到str1上,不可调用系统函数 5

 我来答
淦海瑶s1
2012-03-01 · TA获得超过3646个赞
知道大有可为答主
回答量:3341
采纳率:100%
帮助的人:765万
展开全部
void strcat(char *str1,char *str2)
{
while(*str1++);
while(*str1++=*str2++);
}
这个是我见过的最经典的代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sgxwxlq
2012-03-01 · TA获得超过218个赞
知道小有建树答主
回答量:382
采纳率:0%
帮助的人:239万
展开全部
动态分布str1的空间,然后把str2的字符串接到后面就可以了
追问
哎,不懂啊!这是我上学期期末考的试题,最后的一道大题..我到现在还没搞明白!你们把完整代码写出来么
追答
你在定义str1的时候,要定义的足够大,然后写一个求长度的函数,之后就把str2里面的内容接到后面就可以了,具体代码也不是很难,求长度就是:
while(str1!=0)
{
str1++;i++;
}
i 就是长度,然后for(j=i;j<maxsize(这是str1定义时长度);j++)
for(k=0;k<str2长度;k++)
str1[j]=str2[k];然后用循环输出就可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d6957ec
2012-03-01 · TA获得超过825个赞
知道小有建树答主
回答量:130
采纳率:100%
帮助的人:105万
展开全部
void strcat(char *str1,char *str2)
{
for(;*str1!='\0';str1++);
str1++;
for(;str2!='\0';str2++)
{
*str1=*str2;
str1++;
}
*str1='\0';
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
7nianxdren
2012-03-01 · TA获得超过338个赞
知道小有建树答主
回答量:117
采纳率:0%
帮助的人:196万
展开全部
百度百科有strcat的详细介绍

其中,strcat函数原型如下:   
char *strcat(char *strDest, const char *strSrc)   
{   char *address = strDest; //该语句若放在assert之后,编译出错
  assert((strDest != NULL) && (strSrc != NULL)); //对源地址和目的地址加非0断言
  while(*strDest) //是while(*strDest!=’\0’)的简化形式
  {
   strDest++;
} //这个循环的目的是让指针strDest指向其字符串的最后一位'\0'
  while(*strDest++ = *strSrc++)
  {
  NULL;
} //这个循环是将字符串strSrc加到strDest的后面  
return address; //为了实现链式操作,将目的地址返回   
}

你给的函数返回类型是void,把最后的return行删去就行了
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式