问题遇到的现象和发生背景
用函数把两个字符数组连在一块。为什么输出是有方块,而且用指针的函数多出一部分
用代码块功能插入代码,请勿粘贴截图
#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);
}
运行结果及报错内容
我的解答思路和尝试过的方法
为什么输出是有方块,而且用指针的函数多出一部分