1

这是我的一段代码:

char sentence[400];
FILE *f;

const char *appname = application_name; //where the application_name comes from the program
strcat(sentence,appname);
... //I add more string 

f = fopen ("Test.txt", "a+");
...
fprintf(f,"%s\n",sentence);
fclose (f);

结果的一个例子是:àB®pgAdmin III - Browser 什么是àB®

当我添加时,printf("%s",appname)我可以在控制台中看到正确的名称,在上面的例子中pgAdmin III - Browser,为什么?

4

2 回答 2

4

sentence未初始化,您正在向其中添加一些内容。你最终得到的是随机垃圾,然后是你的文本。使用strcpy或初始化sentence变量。

于 2013-03-14T07:15:28.143 回答
0

将 strcat 更改为 strcpy 您的程序将正常工作。

    #include <stdio.h>
    #include <string.h>
    int main()
    {
    char sentence[400];
    const char *appname = "string_check";
    strcpy(sentence,appname);
    printf("%s\n", sentence);
    return 0;
    }
于 2013-03-14T07:39:51.527 回答