面试OR笔试24——翻转单词顺序

来源:互联网 发布:超级红包群txt下载知新 编辑:程序博客网 时间:2024/06/05 14:07

1 题目及要求

1.1 题目描述

输入一英文句子,翻转句子中单词的顺序,但单词内的字符顺序不变(标点字符和普通字母一样处理)。例如:输入I am a student.则输出student. a am I

 

2 解答

2.1 题目分析

先翻转各个单词,然后再翻转整个字符串。

 

2.2 代码

void strReverse(char *beg, char *end){if(!(beg && end && beg < end)) return;--end;while(beg < end) swap(*beg++,*end--);}char* reverseSentence(char *str){if(!str) return str;char *pBeg=str, *pEnd=str;while(*pEnd){if(*pEnd == ' '){strReverse(pBeg,pEnd);pBeg = ++pEnd;}else ++pEnd;}strReverse(pBeg,pEnd);strReverse(str,pEnd);return str;}


原创粉丝点击