翻转句子中单词的顺序

来源:互联网 发布:ansys cfd软件 编辑:程序博客网 时间:2024/04/28 19:13
/*************************************************题目:翻转句子中单词的顺序如:I am a student 输出tneduts a ma I思路:两次翻转1.先翻转整个句子2.依次翻转每个单词****************************************************///翻转函数void Reverse(char *pBegin,char* pEnd){if(pBegin == NULL || pEnd == NULL)return;while(pBegin < pEnd){char tmp = *pBegin;*pBegin = *pEnd;*pEnd = tmp;pBegin++,pEnd--;}}//对句子翻转char* ReverseSentence(char *arr){if(arr == NULL)return NULL;//先确定收尾指针char *pBegin = arr;char *pENd = arr;while(*pEnd != '\0'){pEnd++;}pEnd--;Reverse(pBegin,pEnd);//反转句子//翻转句子中的每个单词pBegin = pEnd = arr;while(*pBegin!='\0'){if(*pBegin == ' ')//在单词前边的空格{pBegin++;pEnd++;}else if(*pEnd == ' '||*pEnd =='\0')//pEnd遍历到单词末尾{Reverse(pBegin,--pEnd);pBegin = ++pEnd;//现在都指向空格}else//最开始pBegin不为空格,pEnd也在单词中间{pEnd++;}return arr;}}

0 0
原创粉丝点击