【发布时间】:2010-07-02 18:52:30
【问题描述】:
我自己创建了 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
}
【问题讨论】:
-
@fahad:在框的顶部有一个小按钮,您可以在其中写下您的问题,看起来像
101\n010。以后请在您的代码中使用它。似乎您提出的每个问题都必须由其他人重新格式化。 -
与您的问题相切,但不要使用
gets: stackoverflow.com/questions/2843073/… 。甚至它自己的文档也说不要使用它。 -
可能是
void main,已知它会引发未定义的行为。最好尽快切换到正确的int main。 -
gets 让输入变得很容易......然后 scanf 很容易
-
@fahad,使用
fgets也同样简单,并且没有致命的错误且没有解决方法。
标签: c