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”)。
参考资料:
百度百科
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)