按单词逆序字符串
按单词逆序字符串(以空格分隔),使用栈实现。
1 #include <iostream>
2 #include <stack>
3 #include <cstring>
4
5 void printStack(stack<char> *s)
6 {
7 while (!s->empty())
8 {
9 char c = s->top();
10 printf("%c", c);
11 s->pop();
12 }
13 }
14
15 void reverseStringByWord(char *src)
16 {
17 int len = strlen(src) + 1;
18 char *tmp = src;
19 stack<char> word;
20
21 while (len-- != 0)
22 {
23 if (*tmp == '\0')
24 break;
25 if (*tmp == ' ')
26 {
27 printStack(&word);
28 printf(" ");
29 tmp++;
30 }
31 else
32 {
33 char c = *tmp++;
34 word.push(c);
35 }
36 }
37
38 printStack(&word);
39 printf("\n");
40 }
41
42 int main(int argc, char *argv[])
43 {
44 reverseStringByWord(" abc def ghijk lmn");
45
46 getchar();
47
48 return 0;
49 }

浙公网安备 33010602011771号