2012-09-18 58 views
2

我在C編程類中有一個任務,用一個新行上的每個單詞輸出一首詩,僅使用函數getcharputchar。我寫了大部分的程序,但我不知道如何只有一個新的行多個空格。例如,當有多個空格時,輸出中會出現間隙,這是我不想要的。有誰知道如何解決這個問題?用C輸出一首詩,每個單詞在一個新行上

int main(int argc, const char * argv[]) 
{ 
    /* Variables declared */ 
    int iochar; 

    /* While loop */ 
    while ((iochar = getchar()) != EOF) { 

     /* If statement to return on alphabetic characters, not puncuation */ 
     if (((iochar >= 'A') && (iochar <= 'Z')) || ((iochar >= 'a') && (iochar <= 'z'))) { 
      putchar(iochar); 
     } 

     /* If statement to produce a new line when a space is detected */ 
     if (iochar == ' ') { 
      putchar('\n'); 
     } 
    } 

    return 0; 
} 
+2

@AJMansfield:不,它不應該,因爲家庭作業標籤被宣佈已過時。 – Philipp

+0

已添加家庭作業標籤。 – user1681673

+0

@Philipp一個人使用的是什麼?還是甚至有現在使用的東西?謝謝你這麼說,我沒有意識到這一點。 – AJMansfield

回答

2

您可以將前一個字符存儲在另一個變量中,並且只在當前字符爲空格且前一個字符不是空格時輸出換行符。

順便說一下:輸入中的數字會發生什麼?

+0

這似乎可能會起作用。謝謝。我現在試試看,然後回來。我沒有考慮數字,因爲我們給出的輸入只是一個現在有數字的詩。 – user1681673

+0

一位有經驗的程序員從不會假定只是因爲在他的測試用例中沒有發現某些東西,這並不意味着它將永遠不會在生產數據中找到:) – Philipp

+0

它工作正常!謝謝Phillip。我會對你說的(^)。我只是認爲它可能會讓我的老師猝不及防。我會爲你投票,但是我不能:( – user1681673

相關問題