逆转句子中的单词

来源:互联网 发布:电工证淘宝 编辑:程序博客网 时间:2024/05/01 19:14


1. 描述

输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。
为简单起见,标点符号和普通字母一样处理。


2. 思路

方法和数组循环移位的思想是差不多的。

代码如下:

void transfer(char *words){char *p, *q, temp;char *w = words;while (*w) {for (p = w; *w != ' ' && *w; w++) continue;for (q = w - 1; p < q; ++p, --q) { //逆转每个单词temp = *p;*p = *q;*q = temp;}// forif ( ! *w) break;w++;}// whilefor (p = words, q = words + strlen(words) - 1; p < q; ++p, --q) //逆转句子中的每个字符{temp = *p;*p = *q;*q = temp;}}