码迷,mamicode.com
首页 > 其他好文 > 详细

剑指Offer41 反转单词顺序,单词字符顺序不变

时间:2016-09-04 19:03:54      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:

 1 /*************************************************************************
 2     > File Name: 41_ReverseWords.c
 3     > Author: Juntaran
 4     > Mail: JuntaranMail@gmail.com
 5     > Created Time: 2016年09月04日 星期日 16时18分34秒
 6  ************************************************************************/
 7 
 8 #include <stdio.h>
 9 
10 // 反转单词
11 void ReverseWord(char* left, char* right)
12 {
13     if (left== NULL || right==NULL)
14         return;
15     while (left < right)
16     {
17         char temp = *left;
18         *left = *right;
19         *right = temp;
20         
21         left ++;
22         right --;
23     }
24 }
25 
26 void Reverse(char* str)
27 {
28     if (str == NULL)
29         return;
30     
31     char* left = str;
32     char* right = str;
33     while (*(right+1) != \0)
34         right++;
35     
36     // 先反转整个句子
37     ReverseWord(left, right);
38     
39     // 再逐步反转每个单词
40     left = str;
41     right = str;
42     while (*left != \0)
43     {
44         if (*left ==  )
45         {
46             left ++;
47             right++;
48         }
49         else if (*right==  || *right==\0)
50         {
51             ReverseWord(left, --right);
52             left = ++right;
53         }
54         else
55         {
56             right ++;
57         }
58     }
59 }
60 
61 int main()
62 {
63     char str[] = "I am a student. ";
64     Reverse(str);
65     
66     printf("%s\n", str);
67     return 0;
68 }

 

剑指Offer41 反转单词顺序,单词字符顺序不变

标签:

原文地址:http://www.cnblogs.com/Juntaran/p/5839779.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!