簡體   English   中英

在新行上打印每個單詞

[英]print each word on a new line

我想在一個新行上打印每個單詞。 我已經掃描了一個空格,然后打印了新的一行。 它可以輸出有時刪除一些字母:

#include <stdio.h>
#include <ctype.h>

int main(void)
{
char ch;
int nextChar;
    nextChar = getchar();
    while (ch != EOF) {
        if (ch == ' ') {
            putchar('\n');
        }
        else {
            putchar(ch);
        }
        ch = getchar();
    }
    return 0;
}

比如輸入: hello how are you

輸出:

hello
how
are
you

這里的問題是你將第一個char值nextChar變量並使用ch變量。 要糾正嘗試下面的內容:

#include <stdio.h>
#include <ctype.h>

int main(void)
{
    char ch = getchar();
    while (ch != EOF) {
        if (ch == ' ') {
            putchar('\n');
        }
        else {
            putchar(ch);
        }
        ch = getchar();
    }
    return 0;
}

int nextChar; nextChar = getchar();

上面提到的線條顯然是你面臨這個問題的原因。 它會將第一個字符存儲在nextChar變量中,但是你永遠不會最終使用它。 因此,輸入中的其余字符按預期工作。 在其余的句子中它工作正常,因為上面提到的無用的行不在while循環的范圍內,實際上工作正常

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM