比这篇新的文章: StrPermutation
比这篇旧的文章: main.cpp 测试程序

ReverseWords

语言: C, 标签: 无  2008/08/26发布 2个月前更新
作者: bookine, 点击245次, 评论(0), 收藏者(0)

开关行号, 全选(Ctrl+C复制) | 一键复制:HTML, BBCode(Discuz!) , 源代码 | 查看:裸代码, 全屏
背景
主题: 字体:
C语言: ReverseWords
01 void ReverseString(char str[], int start, int end)
02 {
03     char tmp;
04
05     //exchange characters and move ptr to middle
06     while(start < end)
07     {
08         tmp = str[end];
09         str[end --] = str[start];
10         str[start ++] = tmp;
11     }
12 }
13
14
15 void ReverseWords(char str[])
16 {
17     int slen = 0;
18     int start = 0;
19     int end = 0;
20
21     slen = strlen(str);
22     //reverse entire string
23     ReverseString(str, start, slen - 1);
24
25     start = end = slen - 1;
26     while(start >= 0)
27     {
28         //find a non-word character or the beginning of the string
29         if(str[start] == ' ' || start == 0 )
30         {
31             slen = start;
32             if(start != 0)
33                 ++ start;
34             //reverse a word
35             ReverseString(str, start, end);
36             //move ptr to next word
37             start = end = slen - 1;
38         }
39         else
40         {
41             -- start;
42         }
43     }//while
44 }
打分:

所有评论,共0条:( 我也来说两句)


发表评论

注册登录后再发表评论