标签:
题目描述
将一个英文语句以单词为单位逆序排放。例如“I am a boy”,逆序排放后为“boy a am I”。
所有单词之间用一个空格隔开,语句中除了英文字母外,不再包含其他字符。
输入描述
将一个英文语句以单词为单位逆序排放。
输出描述
得到逆序的句子
输入样例
I am a boy
输出样例
boy a am I
测试代码
1 #include <stdio.h> 2 #include <string.h> 3 4 void reverse(char *p, char *q) 5 { 6 char t; 7 while (p < q) 8 { 9 t = *p, *p = *q, *q = t; 10 p++, q--; 11 } 12 } 13 14 int main(void) 15 { 16 char str[2000]; 17 char *p, *q; 18 while (fgets(str, 2000, stdin) != NULL) 19 { 20 str[strlen(str) - 1] = 0x00; 21 reverse(str, str + strlen(str) - 1); 22 p = q = str; 23 while (*q) 24 { 25 while (*q != ‘ ‘ && *q != ‘\0‘) 26 { 27 q++; 28 } 29 reverse(p, q - 1); 30 while (*q == ‘ ‘ && *q != ‘\0‘) 31 { 32 q++; 33 p = q; 34 } 35 } 36 puts(str); 37 } 38 return 0; 39 }
标签:
原文地址:http://www.cnblogs.com/maxin/p/5669170.html