c语言怎么返回字符串数组?

char strcatf(char str1[],char str2[])[] { int i=-1,j=0; while(str1[++i]!='\0'); //计算出的 i 就是字符串str1的长度 while(str2[j]!='\0') //将str2的字符复制给str1字符的后面,也就是第i个开始 str1[i++]=str2[j++]; str1[i]='\0'; //在最后加上字符串的结束符'\0' return str1; } main() { printf("%s",strcatf(j,i));之前省略了其他代码,此处j,i为两个字符串数组(char X[ ]) } 错误代码只有一句,,,error C2090: function returns array,这该怎么处理?我想返回一个字符串数组,入股我的方法不行我该怎么处理?

第1个回答  2019-11-29
1、在void
strcat()的strcat前添加*,表示返回char
指针。
2、strcat()应该返回str1,即
return
str1。str1是连接的结果,调用者有责任确保str1数组空间足够大,以便在其尾部添加str2后,不会覆盖其他数据空间。
第2个回答  2020-08-05
字符串输出在遇到'\0'字符前不会停
char*
p
=
"123\0456";
printf(p);
//
输出123
p[3]
=
'&';
printf(p);
//
输出123&456
你代码里为什么那样是因为多位数组的存储空间是连续的
两句strcpy后arr数组是变这样
you.me.?
其中.代表空字符,?是未使用的空间
相似回答