C程序设计语言-练习1-12

题目: 编写一个程序,以每行一个单词的形式打印其输入。

分析: 单词是一个不包含空格,制表符或换行符的字符序列。思路很简单,

如果一个字符不是空白字符就打印出来,如果一个单词已到结尾就打印一个

换行符。可以这样判断一个单词是否到结尾:前一个字符是单词的组成部分,
当前字符不是单词的组成部分。

 

 1 #include <cstdio>
 2 
 3 using namespace std;
 4 
 5 int main()
 6 {
 7     const int OUT = 1//字符不是单词的组成部分
 8     const int  IN = 0//字符是单词的组成部分
 9 
10     int pre = OUT, curr = OUT;
11 
12     int c;
13     while( (c = getchar()) != EOF )
14     {
15         if( c == ' ' || c == '\n' || c == '\t' )
16         {
17             pre  = curr;
18             curr =  OUT;
19             //是否遇到单词结尾
20             if( pre == IN && curr == OUT )
21             {
22                 printf("\n");
23             }
24         }
25         else 
26         {
27             pre  = curr;
28             curr =   IN;
29             putchar(c);
30         }
31     }
32      return 0;
33 }
34  

当然,这个程序可以使用C++的string。


 

 

posted on 2010-07-08 14:27  ewee  阅读(371)  评论(0编辑  收藏  举报

导航