如何从字符串中删除换行符

时间:2015-11-07 16:34:03

标签: c

我有一个文本文件,其中包含以下字符

An investment
in knowledge 
pays the 
best interest

我的代码我的代码应该读取文件并将其打印在一行中,如下所示

An investment in knowledge pays the best interest

我的代码如下;

int main()
{
    FILE *fp = fopen("C:\\Users\\abiye\\Downloads\\abiye.txt", "r");

    char c;
    int d = 0;
    char arr[200];

    do
    {
        c = fgetc(fp);
        printf("%c",c);
        d = d + 1;
        if (c == '\n') {
            putchar(' ');

        }


        arr[d] = c;

    }
    while (c != EOF);

    fclose(fp);
    return 0;
    }

但不是给我想要的结果,而是得到以下印刷

An investment 
in knowledge(A space is added at the beginning of this string and the rest that follow)
pays the 
best interest

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:3)

这是因为你在检查之前打印了这个角色。

您要做的是检查然后打印。

do
{
    c = fgetc(fp);
    d += 1;
    if (c == '\n') {
        putchar(' ');
    }
    else
        putchar(c);
    arr[d] = c;
}
while (c != EOF);