qq_21805381
qq_21805381
采纳率0%
2016-08-03 11:43

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

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • John_ToStr John_ToDebug 5年前

    你的问题:
    用指针将两个字符串数组合并成一个并输出
    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;
    }

    点赞 1 评论 复制链接分享
  • feng1790291543 鱼弦 5年前
    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' );
      }

    点赞 评论 复制链接分享
  • caozhy 回答这么多问题就耍赖把我的积分一笔勾销了 5年前
     本来也不该用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';
    
    点赞 评论 复制链接分享

为你推荐