|
|
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
本帖最后由 xaut3 于 2010-7-24 10:17 编辑
) m) Q7 M7 |( Q& T+ {6 U
* i5 Z9 _3 s# N9 c$ {. u4 j题目: 编写一个程序,以每行一个单词的形式打印其输入。+ g# D2 J- m9 }+ o, L3 W' F0 g/ \$ `
分析: 单词是一个不包含空格,制表符或换行符的字符序列。思路很简单,' p! \. R# n a* P. ^
/ n% L& S5 _: ~. D6 P如果一个字符不是空白字符就打印出来,如果一个单词已到结尾就打印一个
/ J- M1 @; J3 K! u x4 h2 S' K换行符。可以这样判断一个单词是否到结尾:前一个字符是单词的组成部分,
4 M$ B8 }$ `/ R& d' Z2 ?当前字符不是单词的组成部分。 ; u3 r- s3 }8 d2 L) ^) T/ K
. s1 X3 e7 X. `+ a) i 1 #include <cstdio>2 Y3 X6 \1 U* G
2 8 ?3 K2 S3 c( z1 f: p8 P
3
8 b0 H |$ w$ n- L1 wusing2 B! M: e$ R# p% O/ V
namespace std;) N0 Q4 t5 R+ N
4
k1 d/ Z; U; [( n( h/ ]/ S 5 5 W c* }7 ~( g, ^% Z
int main()2 a; k* i- w e8 \( D4 Z
6 {, V+ E8 c( e5 D, A
7 # T' x5 J# i3 R7 V. L
const
! B/ g' D& [4 t- |& i+ [+ ^int OUT =
- F( m" ^1 s5 f* d1; //字符不是单词的组成部分' V$ X/ @; T% z* ~6 y0 r& Y8 D
8 9 {: I4 z; f% ^/ N2 j" B
8 r4 ^% ]0 B% Aconst1 Z5 A: T* w3 x- E4 [" ?
int IN =
8 s: ]8 |( Y7 y# r0 `( ~1 X0; //字符是单词的组成部分
7 U0 V$ Z) U+ t% r+ }" R 9 / f5 w3 A$ t! m1 k
1 m* C3 l0 i$ L% l
10
1 y6 [1 w' n0 R+ h# Y2 vint pre = OUT, curr = OUT;: ` }; Z8 J# h" Q. f
11
2 a8 B5 w" q2 B# Q; d12 g3 }9 f$ ?( r1 V6 X) Y
int c;% r- M3 z: U# a( z0 L
13 ' ?! ]. H7 A8 `4 B. ~3 E
while( (c = getchar()) != EOF )
+ D0 L. W; ?$ F14 {, C+ c- d1 \; L W, H
15
7 X( z. q/ S6 E& f4 Vif( c ==# n/ V' u: z0 U
'
( k6 K2 E X4 O) u/ O @1 H. h) ]'$ j# A. f6 p1 D# i3 M3 i, p! I; J
|| c ==
2 @' R- Z$ ` M) t'\n'% @! w2 d5 ^! h" N
|| c ==
/ s& t8 T A ]0 j% m- G'\t' )8 h' V/ g- G, n' d- E
16 {
' }7 }$ q, P( g$ ~7 ~2 n17 pre = curr;+ b+ f; U3 ^7 h4 b; Y0 B7 ^. b) b
18 curr = OUT; G$ H+ z* m+ N3 N. m
19
% g9 ]- U- j+ t/ k( _# }4 q7 G% t G//是否遇到单词结尾 ^ h3 @& K7 o( L3 a
20
& y u; B: O5 A9 } E/ `! u. f( w |- T* S2 [. g2 V* Q9 I
if( pre == IN && curr == OUT )
1 R$ w' Y& Y" t6 \; C/ H21 {& F5 @! W. r. R& E" D
22 printf("\n");! G* o: q ^& d& w5 }, ]2 N" g- ^
23 }
8 s) G* Q8 {1 v1 e4 [24 }# `& _2 |1 c$ G0 k
25 - G* F* k% `2 C$ o8 U( R
else
( ? v% {2 g7 K k$ p& i26 {
- R& O$ s; b, |& D" V5 L: R27 pre = curr;
- v0 _1 Q* B) S5 _" }9 y0 Q9 A28 curr = IN;
& S4 H! |5 R9 c29 putchar(c);3 M6 b: {& U6 N
30 }0 @! x& j+ I% x) b9 W/ c: g# K) G
31 }! |+ y- v" d( Z/ P9 a3 o
32
0 c3 Y; g+ z% t" treturn
( y0 S* J- `" C0;
0 A: ^6 K8 A% Q% s33 }* Q7 `. D$ P+ h/ F" @
34 ( y8 e" }7 }/ R
/ }5 \" y0 S9 ?/ c8 m
+ p: h8 z3 J4 C6 \当然,这个程序可以使用C++的string。 |
评分
-
查看全部评分
|