为啥会有乱码呀
#include <stdio.h>
#include <string.h>
int strcen(char a[],char b[]);
int main(){
int k;
char a[41],b[21];
gets(a);
gets(b);
k=strcen(a,b);
puts(a);
printf("%d",k);
return 0;
}
int strcen(char a[],char b[])
{ int i=0,j=0;
while (a[i]!='\0')
i++;
for(j=0;b[j]!=0;j++)
{a[i]=b[j];
i++; }
return(i);
}
#include <stdio.h>
#include <string.h>
int strcen(char a[],char b[]);
int main(){
int k;
char a[41],b[21];
gets(a);
gets(b);
k=strcen(a,b);
puts(a);
printf("%d",k);
return 0;
}
int strcen(char a[],char b[])
{
int i=0,j=0;
while (a[i]!='\0')
i++;
for(j=0;b[j]!='\0';j++)
{
a[i]=b[j];
i++;
}
a[i]='\0';
return(i);
}```
```
22行加上 a[i] = 0;最后要加上字符串结束符才行
字符串结尾要赋值成0呀,要不然字符串不结束,后边的乱码也当字符串输出,可不乱码 吗
或者你改成for(j=0;b[j-1]!=0;j++),连结尾的0一起复制过来