我自己制作了strcat()函数,但是在添加字符串之后,它会打印一个额外的ascii符号。
请告诉我为什么?
#include<stdio.h>
#include<conio.h>
#include<string.h>
void xstrcat(char string1[],char string2[]);
void main(void)
{ char x[100];
char string1[40],string2[40];
printf("Enter a string:");
gets(string1);
puts("Enter another string:");
gets(string2);
xstrcat(string1,string2);
printf("%s",string1);
getch();
}
void xstrcat(char string1[],char string2[])
{
int i,x,y;
x=strlen(string1);
y=strlen(string2);
for(i=0;i<y;i++)
{ string1[i+x]=string2[i];
}//for ends
}
最佳答案
xstrcat()
函数没有在结果字符串的末尾放置空终止符。
一个可能的解决方法是在xstrcat()
函数返回之前放置以下内容:
string1[x+y] = '\0';
关于c - strcat();打印多余的字符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3168367/