yellowplay 2022-11-06 17:43 采纳率: 100%
浏览 24
已结题

C语言 用函数把两个字符数组连在一块

问题遇到的现象和发生背景

用函数把两个字符数组连在一块。为什么输出是有方块,而且用指针的函数多出一部分

用代码块功能插入代码,请勿粘贴截图

#include<stdio.h>
#include<string.h>

void strcat1(char s1[],char s2[]);
void strcat2(char *s1,char *s2);

int main()
{
char s1[50],s2[50];
gets(s1);
gets(s2);
strcat1(s1,s2);
strcat2(s1,s2);
return 0;
}

void strcat1(char s1[],char s2[])
{
int i;
int l1,l2;
l1=strlen(s1);
l2=strlen(s2);
for(i=0;i<l2;i++){
s1[l1+i]=s2[i];
}
puts(s1);
}

void strcat2(char *s1,char *s2)
{
int i;
int l1,l2;
l1=strlen(s1);
l2=strlen(s2);
for(i=0;i<l2;i++){
(s1+l1+i)=(s2+i);
}
*(s1+l1+i)='\0';
puts(s1);
}

运行结果及报错内容

img

我的解答思路和尝试过的方法

为什么输出是有方块,而且用指针的函数多出一部分

  • 写回答

1条回答 默认 最新

  • yun6853992 2022-11-06 18:01
    关注

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月14日
  • 已采纳回答 11月6日
  • 创建了问题 11月6日