我自己制作了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/

10-13 07:40