|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
本帖最后由 xaut3 于 2010-7-24 10:17 编辑
7 a) `! t& V; G- N, q( c+ `( B: e, T1 Z; ^2 `0 j
题目: 编写一个程序,以每行一个单词的形式打印其输入。
- f+ }; e# I, x分析: 单词是一个不包含空格,制表符或换行符的字符序列。思路很简单,
% n, v/ D* X7 x5 r- E( ~" M# o. r
/ b+ L) P9 } H) O$ O% F& Z如果一个字符不是空白字符就打印出来,如果一个单词已到结尾就打印一个
2 A5 b$ X3 R* o$ M换行符。可以这样判断一个单词是否到结尾:前一个字符是单词的组成部分,/ Y H: |0 ]$ \! }
当前字符不是单词的组成部分。
7 U) |: W8 U# O
/ w8 ?# W: n% R- j& c- F2 V 1 #include <cstdio>
# k; B) x4 V n# ?+ _) g, ? 2
8 A) H! q2 P m7 }7 |8 A6 Q 3
( X, [+ F' z _ ^; h1 p0 Lusing. y/ w# B1 C1 ]3 S" B% p
namespace std;7 @$ {9 F' L( U( S- C- V
4
$ `8 M1 Y+ v, [5 I: R6 f1 G" T9 D 5
# H/ M/ G, j1 Kint main()
# {. `* d! r- I6 `6 [1 D 6 {
0 m3 u' j+ @9 H$ L0 k. w 7 , W8 u+ K3 p; l) j) H0 o* k5 e
const
* p4 Q/ R& a9 Z& z yint OUT =) T- c. j; D4 t5 K$ S' f1 v0 T, o' _
1; //字符不是单词的组成部分# n9 D6 ~8 D, |8 W9 E9 Z+ i
8 . r$ m O P1 V# G
' T" {& L, `" x( P3 g" |" u
const! e4 W9 }& s. G+ E$ E+ X% W
int IN =
3 T$ X( ]5 Z- E7 z0; //字符是单词的组成部分# b/ {3 b# l3 @) ]
9
_# t9 S2 Y; T* O8 o
' L! ]; j! ^2 ?4 M m10 / e9 h i5 J$ Z5 K+ x6 m
int pre = OUT, curr = OUT;9 ` w$ H& \; `9 V4 v: g( Q6 @
11 2 Q6 v! _& H! c8 G' Y
12
' B. g7 Q) b: f0 oint c;: H+ C0 Y) W6 ?9 Y4 m' E0 k/ q
13
, A" V6 ~/ q, ^( }5 vwhile( (c = getchar()) != EOF )
3 s1 Y3 c; s! [/ d1 g14 {
[6 ^" O/ k9 ]+ Q) {3 g15 . h) e3 J5 e7 y& }
if( c ==
/ D5 I3 O! S2 j+ G' m; f' W& ^'9 U" R( @ C( [" [% B4 x
'$ C2 `4 ~) h' H# H# O& w% D1 ^
|| c ==
+ M1 u9 w/ p* N& F'\n'
8 M0 Y1 ~3 K4 ~, C|| c ==
, ~* W C- h G, W9 ]3 U'\t' )
" f# O/ e' F! l% T! Y* |- `16 {2 o1 @8 C( T2 g9 O4 s6 r
17 pre = curr;
9 c% v9 S9 Y6 V1 ]+ q# w18 curr = OUT;
( q- d* x1 T/ y% N/ Q( r0 V: w19
& [8 @: S7 N) u9 z! e9 _//是否遇到单词结尾- T6 v- U" e+ X; X# S" {6 e
20
4 d! k5 R- D, E1 T; D2 V0 U/ u& E/ t; d" z' ^
if( pre == IN && curr == OUT )4 ? A& R4 B3 Q7 e% P
21 {% j: s6 k! h" E- m: t& E j5 ?
22 printf("\n");9 Q7 u+ F% w2 [( s' P
23 }% G+ _( w2 \- E% m$ }/ ]
24 }) D$ J& n, e f- p
25
( O8 X$ j. B: }else
/ s9 E# S9 @1 k' L26 {! c: r0 K, C5 B1 [* s2 x$ c
27 pre = curr;) H1 }: B) J$ X+ O+ U
28 curr = IN;7 v0 i; `1 c7 N! W' k8 ?' c
29 putchar(c);8 U5 v ?& ~" c4 J; }
30 }& N: g: O3 o% S+ C5 s9 ]: y" H
31 }
: S+ Q, f2 A; ^: b32 + a, J& |* u1 [3 m: |% Y
return) [1 h- b$ ]$ B
0;5 h3 |( N- E8 b
33 }0 a/ f7 W: N- X+ n
34
% b+ b, H) E) X& J8 K8 ~/ e( q
& P8 S% o2 {4 i. N$ {: V6 m0 T# `/ H! ^3 t! K( Q
当然,这个程序可以使用C++的string。 |
评分
-
查看全部评分
|