C语言的字符串连接问题

3、编写一个自定义函数,它的功能是把两个任意长度的字符串s1、s2的内容连接成为一个字符串,并保存在字符串s1中。(提示:不能使用strcat()函数,注意新生成的字符串... 3、编写一个自定义函数,它的功能是把两个任意长度的字符串s1、s2的内容连接成为一个字符串,并保存在字符串s1中。(提示:不能使用strcat()函数,注意新生成的字符串末尾需添加’\0’)
注意:必须用主函数输出结果
输入:“12 3”和“a\0t”,输出:12 3a
展开
 我来答
弈轩
2017-12-01 · 知道合伙人教育行家
弈轩
知道合伙人教育行家
采纳数:1029 获赞数:7544
电子设计大赛三等奖 优秀毕业生

向TA提问 私信TA
展开全部

如图(要求不能使用系统自带的strcat)


这才是符合题意的正解!

电脑端可看源代码:

#include <stdio.h>
int main(void)
{
char s1[100]="12 3",s2[]="a\0t",*q;
int i;
for(q=s1; *q!=0 ;q++); //找到s1串的末尾位置
for(i=0; s2[i]!=0 ;q++,i++)*q=s2[i]; //将s2字符复制到s1
*q=0; //增加末尾停止符\0
printf("%s\n",s1); //打印拼接后的s1
return 0;
}
追问
用自定义函数
追答

如图:用自定义函数实现该功能。

源代码:

#include <stdio.h>
void StrConnect(char* str1,char* str2); //声明自定义函数
int main(void)
{
char s1[100]="12 3",s2[]="a\0t";
StrConnect(s1,s2); //将s2连接都s1后面
printf("%s\n",s1); //打连接后的字符串
return 0;
}
void StrConnect(char* str1,char* str2){
for(; *str1!=0 ; str1++); //找到s1串的末尾位置
for(; *str2!=0 ; str1++,str2++)
*str1=*str2; //将s2字符复制到s1
*str1=0; //增加末尾停止符\0
}
雪V歌
2017-12-01 · 知道合伙人数码行家
雪V歌
知道合伙人数码行家
采纳数:78698 获赞数:222935
泉州兴瑞发公司2015-2017最佳优秀员工。

向TA提问 私信TA
展开全部
可以使用系统提供的函数strcat,若要自己实现的话思路如下:
1.获得两个字符串的长度,相加,开辟一个长度为前面两个字符串长度和的数组;
2.将两个字符串中的值依次赋值到新的字符串中。
追问
谁能写一个正确答案,无论自定义函数名是什么。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
汗晚竹红鸾
2019-09-07 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:25%
帮助的人:900万
展开全部
几乎所有的字符串函数,第一个参数都是目的参数,结果也是存在这个参数中。
按你的要求:字符+字符串,应该是没有现成的功能函数。如果经常用到,自己封装一个函数吧;
如果你的连接是:字符串+字符,倒是可以使用strncat()函数,strncat(bcd,
&a,
1);
//
bcd
为字符串变量,a为字符变量
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
合奕琛树妍
2019-01-06 · TA获得超过3.5万个赞
知道大有可为答主
回答量:1.4万
采纳率:27%
帮助的人:714万
展开全部
C语言中使用strcat函数连接字符串,这个函数在string.h头文件中
你可以参考下面这两个网址:
http://baike.soso.com/v1986961.htm?ch=ch.bk.innerlink
http://www.cplusplus.com/reference/clibrary/cstring/strcat/
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式