【发布时间】:2016-12-13 21:09:26
【问题描述】:
我已经制作了这个程序来模拟 strcat 功能,但是 printf 有一个我不明白的错误...
代码如下:
#include <stdio.h>
char *mystrcat(char *s1, char *s2);
int main(void)
{
char *s1,*s2;
s1="asdad";
s2="asdad";
s1=mystrcat(s1,s2);
printf(s1);
return 0;
}
char *mystrcat(char *s1,char *s2)
{
int i,j;
for(i=0;s1[i]<'\0';i++) ;
for(j=0;s2[j]!='\0';j++) s1[i+j]=s2[j];
s1[i+j]='\0';
return s1;
}
【问题讨论】:
-
2)
s1中没有空格来保存连接的字符串。 -
作为附加说明,您可能不应该使用
printf(s1),而应该使用puts(s1)或printf("%s\n", s1)。特别是如果字符串不是编译时常量,如果它们碰巧包含格式说明符,那么将它们用作printf的格式字符串是一个严重的问题。