我做了這個程序來模擬strcat的功能,但與它的printf我不明白的錯誤...在我的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'中沒有空格來容納連接的字符串。 – BLUEPIXY
作爲附加說明,您可能不應該使用'printf(s1)'而是'puts(s1)'或'printf(「%s \ n」,s1)''。特別是如果字符串不是編譯時常量,如果它們碰巧包含格式說明符,那麼將它們用作'printf'的格式字符串是一個嚴重的問題。 – Arkku