|
|
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
本帖最后由 xaut3 于 2010-7-24 10:17 编辑 / B1 f, @5 I o: T( z$ G* {4 x& x4 r
% F) S$ Y9 K% h0 a( E
题目: 编写一个程序,以每行一个单词的形式打印其输入。
' W. e! h* t' r0 f1 C' `+ g分析: 单词是一个不包含空格,制表符或换行符的字符序列。思路很简单,% ]- S2 t9 F1 e. A* W
' h- H7 w& n; M$ J4 R如果一个字符不是空白字符就打印出来,如果一个单词已到结尾就打印一个# D7 `. e1 s5 i. h! _, _
换行符。可以这样判断一个单词是否到结尾:前一个字符是单词的组成部分,; O' u/ S# y0 y0 }9 k) ?5 g
当前字符不是单词的组成部分。 * U! }% n+ J8 n: e% i8 e
2 K2 F# L+ V @0 C. ~; q0 i
1 #include <cstdio>
6 A2 C' Y& S' _ 2 , r: ] N' h5 b0 ]9 n! O3 O4 r
3
; c3 G: l, n3 \' R X5 yusing
6 G3 v1 p: c6 v( F! e) ~2 ~7 znamespace std;! k9 t: d% p# p G, _# N+ e# E
4
3 W- O4 `+ l, @5 o) _6 ^, x( g! f: l 5
1 p! n) V! e2 O8 h! e/ _int main()8 M* g) \" P7 S7 I$ x( u6 p7 ~
6 { W+ B& h5 Z+ p0 }( |5 }
7 2 J: s' I! F! l+ K
const
4 o+ \: \* w; J) F9 vint OUT =
. S/ c4 [# c/ ]. o( d& ^% i; z6 L1; //字符不是单词的组成部分0 c) p4 O- ]; x6 l
8
F- N7 D) Q+ g
) x! [2 F8 z0 B7 k/ Oconst3 N5 s% B4 {0 \0 F
int IN =0 T$ ]. {: y- y
0; //字符是单词的组成部分
( ]! P! @! }4 o) O; M7 Y4 w6 S1 g& e. B 9
2 E1 I' y' H# H, Q5 n/ ?. ]! \% u% F) Z
10 C# Q a7 K L" `; N
int pre = OUT, curr = OUT;. x' k! l! L5 {; f6 W
11
: `2 V" J; c& g+ w0 O/ V3 ~8 e12 9 f! `- @5 z0 {) A
int c;
8 o! \; r$ Y" |/ |13 6 F" c' D9 Y; s; O/ Q) m9 u$ Q
while( (c = getchar()) != EOF )
( @8 m" Z4 s! \6 @8 R3 b14 {
8 _4 s& c9 H8 C15
$ K' Q/ h7 a5 V& ]) v0 N" Sif( c ==
. N2 b8 ~5 N/ \2 O'
/ g- Y w: S6 S; \% v9 r'
1 R: W# @$ e! M u6 _4 [5 G|| c ==
$ Z4 c ?9 r4 Q- t* l8 u, L'\n'
9 w ~9 I6 |& z; G. Z& r: p|| c ==
) z8 G6 g- {( E) ^8 m'\t' )
9 y* g6 J+ F/ g: f% x& r- q* c16 {1 s& g9 A) J! R% H1 {
17 pre = curr;
t Y; m5 y3 t, x) U7 f2 | _18 curr = OUT;; u; n8 r$ n& K) _* ^
19
0 K9 `: m* M8 x% g//是否遇到单词结尾
. f% o; D7 D& @5 M' q20
- f6 c V3 A, r3 R% U2 D Q0 y+ E
if( pre == IN && curr == OUT )
6 l# _3 B7 R$ g21 {
: F* c; A5 g- x4 s- L22 printf("\n");
0 h6 w, N# M3 Q% ^. j' @. d% q23 }
4 \* Y9 f( Y6 ]+ e7 r24 }
( i; q4 e- H6 f" V25
# x2 o! M0 K0 n W0 Z) ^else
5 q& D' b# z. b) R26 {2 @* Y* \% V0 x( |/ y. Z
27 pre = curr;4 s+ K! G2 ^# i+ [$ D5 i
28 curr = IN;$ y) a! t4 S! V, Y
29 putchar(c);
) {3 L2 B; d9 n: G' m7 Q4 T i) n) k30 }9 T! c5 ~* a w! q7 A* j% P
31 }+ \# n% }' C% F6 n& [$ F L
32 ' O Q& a0 k, |
return9 P$ X' {+ |1 d
0;8 c4 b+ g7 I9 ^4 d* V7 L
33 }
& `( ^8 S; V9 ?$ J% t5 c2 ?5 Z& Q5 F34
( l% M* o7 ?0 D4 k8 T
- i4 z$ y0 ~4 |& T: A9 z( n/ Y. I6 a0 @- H2 P; I
当然,这个程序可以使用C++的string。 |
评分
-
查看全部评分
|