|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
本帖最后由 xaut3 于 2010-7-24 10:17 编辑 ( i2 s9 L4 @. c
: H6 ^" S. b: T ]5 j) c+ @
题目: 编写一个程序,以每行一个单词的形式打印其输入。$ g. }2 ^, ^' m0 y( H% p% X
分析: 单词是一个不包含空格,制表符或换行符的字符序列。思路很简单,# b7 }0 {+ w0 {
1 A8 o! d# o+ M) j$ e) W5 k
如果一个字符不是空白字符就打印出来,如果一个单词已到结尾就打印一个) ?8 a; ~# t$ q( o2 n5 i
换行符。可以这样判断一个单词是否到结尾:前一个字符是单词的组成部分,/ I0 |. ]* z# T3 j+ F( D
当前字符不是单词的组成部分。
. H Z2 ~% @# m' y x# l
/ ] O( }; a; b# k: \2 ] 1 #include <cstdio>( a% G4 c3 C8 I* _
2 0 f0 M+ N' l, F" t' z1 ]+ B' ~7 T
3
6 j( y* O5 i& S. }. N9 T4 ^$ B& c Xusing
+ r# n @# \8 |; I# D( Qnamespace std;+ V1 z9 ?+ E8 t9 P- L( `( W
4
. }$ s5 j1 P: h$ Y- K! S 5
( ]) l2 F0 F4 X+ q* Eint main()
& \1 B* y7 X, k3 s8 e/ D6 v 6 {
4 ]* r( [ K2 U: A* q. B' v 7
, R! |4 L0 e4 e" r2 K. U- iconst
+ D) y4 l" L4 D9 S4 Rint OUT =
. b+ g' E1 u6 C# G1; //字符不是单词的组成部分4 [8 A1 ~1 B( D: H4 c
8
! E; I* G3 n3 U8 q8 H( N! o9 u' X. i/ N& v" g3 q/ j
const
* h5 D% f: a5 j o g- F' w9 j" U. V+ m6 ?int IN =
% O2 \) A8 p; G/ U0; //字符是单词的组成部分8 N7 p3 M x- S3 k
9
0 A5 E7 |3 J6 x6 {3 I6 i
. N* D& k j% e' t8 ^4 @! E10
+ A' n$ k& T- G a$ O" I N, \! \int pre = OUT, curr = OUT;4 M0 w# l: @5 T3 q4 ~9 {' e3 G
11 , [2 @! n6 Y3 o( l1 X; ~# ?
12 . @% a: G& U$ o1 S) s- g
int c;
/ j% j% `& q; |+ t& u$ C5 f13 , c& ^ Y$ ~0 K. d: E& I- r1 |
while( (c = getchar()) != EOF ), t. @7 j8 c- a T4 L2 u1 y# I
14 { Z9 X3 V9 c! q! g8 c* _
15
0 e$ U8 d0 U/ M7 {if( c ==
/ V3 d5 s7 W- I! N* l' `# i! ?, ^'+ b: B ]( D7 ?& N! w9 _3 f
'
0 x( a/ a E$ q8 Y|| c ==* x5 n( q0 ^- c: H4 ^* y) `9 Z
'\n'
8 g% `' k/ G8 A! V|| c ==% \' ]3 m8 E2 i& c, t6 ]
'\t' )
) i( \4 ?, ~; ]16 {# X% E) L' K& z8 n- Y9 O
17 pre = curr;
3 x: @. w) i8 S( z1 c18 curr = OUT;" d7 z) b) z; [* g. z% q( h {
19
e* M# z: r9 ]8 j# V, Z7 K//是否遇到单词结尾7 [# i- s% a' x4 @5 S0 K
20 - y" c* h$ ~" k
% D$ o, q; b% O2 X$ Z$ L
if( pre == IN && curr == OUT )
4 |+ N+ ? ]% R21 {
6 O/ v8 E( U C# h3 I( Y22 printf("\n");( l; T* @% d e2 O: h2 T' ]! p
23 }
* H+ x) u7 z; _& B# Q24 }! B t! F. N ]' n% f; ^8 b
25
, I U' t; H3 velse/ ]* y. F2 ?8 M4 O, U/ R
26 {9 t! n0 `6 X) R. Q2 n$ j
27 pre = curr;+ Z* I7 j4 L1 ]) x
28 curr = IN;% ^5 }( P- y* H$ A) A4 Y7 X* S
29 putchar(c);' l+ O+ y5 d O2 n" J
30 }
2 ? @% x. W D31 }
; k: s* \& \& \8 n% x" G' a32 , l& |6 O, m9 B3 J0 W2 u. ?
return
2 S" u* y4 c: O$ b* a7 M0;' A# k$ F% {" E. G3 |; P V
33 }7 ?) B/ O8 r' { F7 y& `
34
5 x+ z0 E+ H9 N2 F6 e$ Y$ d- _
/ X5 o/ z9 y9 k9 ] M( b, ] @: H1 x( e( `* j5 s- x" O2 p
当然,这个程序可以使用C++的string。 |
评分
-
查看全部评分
|