|
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
本帖最后由 xaut3 于 2010-7-24 10:17 编辑 4 B5 k5 [* o1 \' Y
8 m' i5 T! A$ G2 P/ i0 S! _题目: 编写一个程序,以每行一个单词的形式打印其输入。& [, |! G8 y' h' J* f4 I1 Z. C
分析: 单词是一个不包含空格,制表符或换行符的字符序列。思路很简单,7 K& g! N! Y1 o0 G$ J
1 ^$ p. n @9 M' N1 ~- T7 R8 d& [如果一个字符不是空白字符就打印出来,如果一个单词已到结尾就打印一个
- K8 { }! A, ~7 p8 X. Z9 V换行符。可以这样判断一个单词是否到结尾:前一个字符是单词的组成部分,
9 a7 R6 B8 V* L Q, t0 ^ U当前字符不是单词的组成部分。
9 b$ [# N7 A7 R7 Q4 K5 ?3 k' G! P' r
1 #include <cstdio>& ?/ N+ o3 z% F2 f# A- L6 l; a8 ] a
2
# r/ @, P; ^( g 3 ! D5 \& u& H- i$ U/ p' {. g
using5 A5 Q4 g+ ^/ [# ]5 z& _$ U* x8 O
namespace std;. i, R# u1 {3 } y
4
2 b1 p3 r# l; _$ c- R 5 . K5 P4 i4 \" i5 `9 V
int main()
! a$ C* K0 H, A" g 6 {$ z0 ?+ D" T$ X0 S9 h# v' {, f
7 0 {8 s9 a$ H; Y9 d0 z& h
const
0 b+ s" u& M1 O% ?3 L0 O+ pint OUT =2 r0 @3 [: R$ c$ U$ Q9 {& q
1; //字符不是单词的组成部分- z) t o$ E" `" _ o! k* H
8 2 h+ o! \' k* j! k- V+ w" f$ i
# ^: Y7 B/ Q, v3 |const
/ H' i2 X; z J( Z8 i$ lint IN =$ k1 I8 J5 m7 {$ r. E- N
0; //字符是单词的组成部分
( Q" }( s; O Y! ~* a: A 9
: M- M9 _# M9 f# V2 k
( Z m3 `6 Q( s# w0 I10
4 Z, I# X0 V' y/ W4 F7 R" oint pre = OUT, curr = OUT;
6 u( k/ I2 T6 o2 D L2 _. }5 A3 A i6 g11
6 G$ k1 ^0 _/ T( y f4 ~! u3 I" K* B12
: c2 A4 I1 ]7 U+ w( wint c;; F" ^* L) k: r- m
13 & Q/ G# ^1 s+ {- X8 J& H3 h! o& j
while( (c = getchar()) != EOF )
$ \% o1 [+ w6 L14 {5 N, [3 Q" m2 q/ |( A% f
15
* o: u9 v7 B n' Mif( c ==
2 H' D) A, b. x# G1 W'
0 w. ?' q9 q1 `' N3 E* o: N: L% \'+ L, d+ c! q& g) {9 p( c
|| c ==
3 d6 L3 @, H( P7 R X9 b'\n'/ v# h: e" G; R. }( w4 S
|| c ==
' h3 |3 j- b# o9 @) Y'\t' )
8 J/ L. B1 Q' K, g6 }4 a4 k6 p16 {
- e3 \: C/ i( Z- A9 e5 t: ?17 pre = curr;' k9 ]" L0 A) `4 c/ [: E' {
18 curr = OUT; x$ T4 E) B( I& j4 a
19 ( l5 u$ R0 ~1 v5 S
//是否遇到单词结尾" ~6 }( X, o4 g
20 9 ~2 j0 B/ J# y
; b+ |5 {& h8 Y; b2 W" o$ @+ _8 }
if( pre == IN && curr == OUT )
5 [# H B8 g) N: N' w6 E2 A$ v" l21 {
+ w) O7 M; X! Z; T( D" j) J) z6 ?6 i22 printf("\n");
& e1 [# v: r7 Q I4 H2 q23 }
- T* T/ b7 [4 o) K24 }3 h* a+ W! q/ _* |
25 8 u! `& Q; A8 r0 p' d' l- w& B
else
! C- E" D/ D; {/ M26 {
/ B9 @( ^4 q( s+ Q27 pre = curr;+ V4 X1 l1 N# ~) h; t
28 curr = IN;
0 {8 y+ G( k' Q f% }29 putchar(c);
# \ W! y2 z ?2 P* S30 }5 ]+ A* e' V" F$ W/ y1 O
31 }
5 k/ Q+ i9 L+ S$ {; Q32
) B) I+ P( ^7 Z$ i/ P- H. U4 xreturn) m4 j' z8 I" h7 |5 k
0;
- f/ d! c9 P# E- W. L3 O! }8 z2 d0 x33 }4 p% K9 j+ ^( `! Z% Y
34 ) ~3 X0 E1 ?5 U9 D2 S: U
( _& z) C0 A, [. G/ b) }+ e# g, \
" \3 Y! k% V! q当然,这个程序可以使用C++的string。 |
评分
-
查看全部评分
|