2012-09-18 19 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

相关问题