c语言怎么用strcat将两个数组a[i]、b[j]合并成一个数组?

c语言怎么用strcat将两个数组a[i]、b[j]合并成一个数组?,第1张

strcat是字符串拼接函数,不是数组拼接函数,所以不能用于拼接两个数组。

可以用以下方法:

用数组的话用memcpy。

用循环把所有数组元素重新拷贝。

直接当字符串输入。

可以使用stringh头文件中的strcat函数
char
a="123";
char
b
=
"abc";
strcat(a,b)即可,更多的字符串 *** 作可以看一下stringh头文件中
有好多封好的,
如果不想用的话就可以自己写一个函数
函数内容:1获取两个字符串的总长度,如total_len=len1+len2然后申请一个动态的数组大小为total_len
然后把字符串中的内容依次放进去就可以了。

strcat 不关心从哪里开始。
它的第一个参数只是提供一个地址,然后从这个地址开始寻找,直到它找到一个'\0'。
然后它把它第二个参数指向的字符串粘贴到'\0'的位置,然后再在这个字符串后边添加一个'\0'。
也就是说,不论你执行
strcat(str+2,p1);
还是strcat(str+3,p1);strcat(str,p1);
结果都是一样的

原型:char strcat(char dest,char src);

用法:#include <stringh>

功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。

说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。
当然是遇到字符串结束符'\0'

您好,输出结果为“a2yz”。

程序:

分析:

strcpy(a+1,b+2)相当于将a[1]及它后面的内容复制为b[2]及它后面的内容。b[2]及后面为“2”,因此复制后a为“a2”;

strcat(a,c+1)相当于在a的末尾加上c[1]及其后面的部分,也就是“yz”。故运行后a为“a2yz”

strcpy把从src地址开始且含有'\0'结束符的字符串复制到以dest开始的地址空间,返回值的类型为char。

strcat把src所指向的字符串(包括“\0”)复制到dest所指向的字符串后面(删除dest原来末尾的“\0”)。

参考资料:


百度百科


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/10545949.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-09
下一篇 2023-05-09

发表评论

登录后才能评论

评论列表(0条)

保存