|
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
本帖最后由 xaut3 于 2010-7-24 10:17 编辑 , e g: W4 Z) E+ S
- Z' h5 N' b/ G! l3 G2 k# Y' W
题目: 编写一个程序,以每行一个单词的形式打印其输入。9 M! `9 T. Z4 ^( H) K% m: @
分析: 单词是一个不包含空格,制表符或换行符的字符序列。思路很简单,
; J& \, S0 N) N5 V% a* `7 _% j/ z
$ E6 j9 b* E1 m6 B9 |0 o; C1 \如果一个字符不是空白字符就打印出来,如果一个单词已到结尾就打印一个
) Q! @8 F, s( @3 F, G* v3 K换行符。可以这样判断一个单词是否到结尾:前一个字符是单词的组成部分,
1 l$ }' F, m: P5 y- w当前字符不是单词的组成部分。 / \# L r+ W) x8 p/ l0 \0 I+ Z k
* [) Z6 v8 n. \3 K, |6 ?" B 1 #include <cstdio>
. [% I+ d' r3 e5 y# k T( `. n+ ? 2 ) b3 j7 V8 M- i1 l8 N) {
3 ; X! m2 U1 m. Z9 S8 |0 X6 O4 s
using
7 p9 L6 D- {3 `$ x: U3 s: v7 wnamespace std;
, r3 W# {2 N1 }5 }2 w* ] 4 5 D! S+ H5 L6 M1 s0 [' a, e
5 ' h! V. Z% y8 V
int main()& k+ f' P! @+ {+ G: o
6 {
+ l% h4 s, J- [ 7
5 P* ~1 a1 O8 d9 w& ~5 E" |* nconst, Y8 ]; R" [- M6 q. J8 \
int OUT = C& B. R. v* m) [
1; //字符不是单词的组成部分" l- g: ]) m6 Y
8 % G! ~7 N9 `0 f/ k
$ t6 b* m# i2 `
const& U4 ~8 S' ]% u# ^4 P" ?) x, c
int IN =
* B) @2 S4 n) F, O5 J: I4 n. M0; //字符是单词的组成部分7 ?2 x4 o, z% l$ X$ l1 E7 b
9 4 ]# t# f* C& F J1 Y8 z
G- \9 L$ q+ t8 t9 _0 a10
+ K5 F7 I( P i; O! c Aint pre = OUT, curr = OUT;
. O4 k0 F) b" ?3 y; q# F11 - a' Y6 w0 d c- Q1 c2 k
12
* f* G! @4 ~! Lint c;7 D& o/ ]; f" ^5 Z8 j
13
e- j$ L% o7 a& [6 q5 hwhile( (c = getchar()) != EOF ) x$ E* @) S4 H: W8 F
14 {% \% r \5 C$ \4 h0 z5 E
15 . ]. S5 @- w0 u4 _! C& i
if( c ==' Q5 o- K( L" k; U
' V& ^! w3 |: ^
'. K) P( |8 x' y& B- V- A
|| c ==
. B0 G8 j3 P* z/ G'\n'
# M& i* m! x6 t4 [|| c ==* o* l! O& V/ d. x
'\t' )( m7 p* q9 o$ [* g9 I+ k9 P% Y
16 {
3 V6 E! [* P! g0 @) A( o/ e* ^17 pre = curr;: w+ N. ^( \: m) }2 o3 ?# h
18 curr = OUT;. s6 o, a1 ~2 }6 R$ d5 n* q: }% T
19
8 w) G B- c$ q//是否遇到单词结尾1 S) O/ K! N. {$ E/ q* M7 C/ b
20
3 j! F; x# I7 r8 j6 G# D7 V* X
, T# U$ F: r" sif( pre == IN && curr == OUT )
) [1 X+ \8 i" _. u F c, d8 i21 {
9 x) o# h, m" `. @; i' c# @9 V8 }& J22 printf("\n");5 t# S4 I; T" |: \
23 }
n/ b% `, U) p$ u# M- F( a24 }* s% ~* k5 A9 u. `
25
# H" S' Z' y2 M0 \% Velse9 P% n( N: }7 w R5 b) m1 G
26 {9 e- |' [ Z7 K0 L
27 pre = curr;" V3 C* N e7 p0 r4 x
28 curr = IN;
8 @+ K$ u$ ^$ k9 ?29 putchar(c);# Z! v6 u& @: T! q+ I; S
30 }9 V9 w# i9 n1 t
31 }
! F+ S# l. U ~0 r: D2 m. p6 f. k32
, U' m: [1 |- V; C0 |, c9 Hreturn
# G/ c( _; G& H% j" D0;6 t4 G3 l# o' ~/ r
33 }% v2 `8 f8 w ]) t
34
5 a; p2 T1 B+ f A6 q6 C, c* ~ p
$ @1 o+ f- f X. T2 {8 K$ Q! J O; W2 V) ^0 l$ w$ U
当然,这个程序可以使用C++的string。 |
评分
-
查看全部评分
|