用指针将两个字符串数组合并成一个并输出

str1[]="zbcdef",str2[]="asdc",实现str1[]="zbcdefasdc"
不能用strcmp!

 本来也不该用strcmp,而是用strcat/strcpy
你可以自己实现(但是要保证str1足够大)

char *p = str1[0];
while (*p != '\0') p++;
char *p1 = str2[0];
while (*p1 != '\0') 
{
*p = *p1;
p++;
p1++;
}
*p = '\n';
  1. 简单的 #include #include int main () { char str[80]; strcpy (str,"these "); strcat (str,"strings "); strcat (str,"are "); strcat (str,"concatenated."); puts (str); return 0; }

  1. void cprstr(char *pss,char*pds){
    while( (*pds++=*pss++) != '\0' );
    }

你的问题:
用指针将两个字符串数组合并成一个并输出
str1[]="zbcdef",str2[]="asdc",实现str1[]="zbcdefasdc"
不能用strcmp!

我的回答:首先你的问题不可能实现,因为str1是个静态数组,它的容量只有7个字节是在编译时确定的。所以说你的想法不可能实现。 那么将提问方
式改一下:实现屏幕打印zbcdefasdc。
#include
#include
int main()
{
char str1[] = "zbcdef", str2[] = "asdc";
char str3[sizeof(str1)+size(str2)-1] = "";
char *p = str1;
int i=0;
while(*p != '\0')
{
str3[i] = *p;
p++;
i++;
}
p = str2;
while(*p != '\0')
{
str3[i] = *p;
p++;
i++;
}
puts(str3);
return 0;
}