|
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
本帖最后由 xaut3 于 2010-7-24 10:17 编辑
9 ~- m7 n( ^. g2 ~
0 r/ G( v) H% ?2 q% o题目: 编写一个程序,以每行一个单词的形式打印其输入。
2 d9 H% I2 P5 G分析: 单词是一个不包含空格,制表符或换行符的字符序列。思路很简单,: R7 n9 X6 V0 L2 F$ P
8 D; I' D) M6 f如果一个字符不是空白字符就打印出来,如果一个单词已到结尾就打印一个
: V: _5 o+ y, j) c `. k4 G换行符。可以这样判断一个单词是否到结尾:前一个字符是单词的组成部分,
, L/ @; n/ H' D! m当前字符不是单词的组成部分。 7 a' z) V0 Y# q4 X2 T8 Z
, S% ^. s) G6 \( S% N3 X, c
1 #include <cstdio>& V- b& K, @0 e3 F5 w6 a
2
5 k& l/ b5 \0 H& t& E/ W7 Q 3
1 o+ j1 A0 Y" G. N3 v7 g. {0 x- vusing
8 a* |/ h0 H- F2 Nnamespace std;/ F L9 b/ v z l
4
. E4 U, p+ j7 @1 n$ t 5 9 u/ @( I$ O3 v/ t6 A2 o
int main()1 ]2 p, }1 y; Z8 t3 b: c
6 {
- ?2 H+ f; T! u 7 , h) C- d- M0 H/ Q) |4 y+ { p
const
1 Y5 p+ l3 H9 u; Pint OUT =
, W X& C# M& J1; //字符不是单词的组成部分: w; f) a# O# r x( s
8
' K0 x" }) E8 P2 O! R: g) h! q& R, y( W0 j. s* o9 P
const9 A& \* Q" n6 r7 n& Q
int IN =
]9 c3 G' K& K" c+ |& L4 S" j0 I9 R0; //字符是单词的组成部分
/ z# P$ D5 |" t! D/ A 9 / v8 k( _2 G$ C
. Q6 o3 r2 ~, |; m# |9 X
10 ) n z$ M# T% }/ A, u1 j2 X6 W# d5 e
int pre = OUT, curr = OUT;2 N% f( E+ m' s5 w
11
0 l9 m+ o/ Z, M8 b, w: b12 4 U2 T0 z0 G2 N O. |
int c;
& a* @& X, G% G5 M7 N- k# X% c13
! V5 d/ a2 a: v( m2 b1 O* k- }5 Rwhile( (c = getchar()) != EOF ); A) \+ u- q% B8 t. D
14 {1 c( i7 J* b7 O0 y- L
15 6 b$ L u" K; k; J2 K2 |; i8 x
if( c ==* [7 y0 D3 V1 X! u5 B7 P
'
" T5 W9 Y: K! X* e7 d) |'
8 u% t2 a& F& @) D- K( y3 q|| c ==
- Y. k y' [! a+ G'\n'
7 }* d/ T9 X- `: g! p|| c ==
: _0 w& Y- i. p; i0 u'\t' )! _; j' p# I% r% {3 ?8 Z
16 {7 ]- O/ G1 ^' P a, R4 m# E
17 pre = curr;) ?. K7 L, {( R1 H' \
18 curr = OUT;/ _/ E" |6 I2 S* E) D. w3 W# [3 g2 S
19 : \. q& ]3 \3 F3 l+ l" Z4 g7 q- V
//是否遇到单词结尾
. L+ b j3 @) X& C/ ]# V20
Z$ \1 N# }: a# w1 @. H' M7 l2 Y0 m* G- g+ c2 y
if( pre == IN && curr == OUT )
) }3 E/ Y6 d" f |, L. d5 }7 P% I2 }8 V" J7 q21 {1 G( H K: O" P. z2 u2 D3 j
22 printf("\n");
1 b/ p" R H& {8 y23 }
/ V) m( L5 c" {- }. U0 G24 }
9 [! p$ q( y0 p8 j$ ~4 K1 b25 * t% E. K; l" n& `
else3 R4 I% ~& ^& o3 x6 G
26 {7 o! H/ ?# O. Y+ E1 h& ^9 x
27 pre = curr;4 A. H$ s# l/ p6 ^7 R
28 curr = IN;; M- A0 V/ j# O& S
29 putchar(c);) N; e# D( @2 S) u: d3 Y( y
30 }
# |, T& [3 a/ g: k: Y8 K+ A! r. s31 }* y5 M+ b" x& ^$ ]! E
32
4 D# b4 I2 X7 }3 ^return
. z2 ^* N! k/ n i- i" w# K7 e0;
* @6 g8 N% W" ?5 L* _' s# k33 }3 t# _; l9 S' M
34 & B8 K+ O6 S; G3 p! g: Q3 d
7 P: ^$ F) X7 ^: U) S( D
: Y0 F0 E, ]* G! g当然,这个程序可以使用C++的string。 |
评分
-
查看全部评分
|