翻转单词顺序
2016-11-02 22:36
162 查看
代码:
#include <iostream> using namespace std; //翻转字符数组 void Reverse(char* pBegin, char* pEnd) { if (pBegin == nullptr || pEnd == nullptr) return; while (pBegin < pEnd) { char temp = *pBegin; *pBegin = *pEnd; *pEnd = temp; --pEnd; ++pBegin; } return; } //翻转单词顺序 char* ReveseWordOrder(char* pSetence) { if (pSetence == nullptr) return nullptr; char* pEnd = pSetence; while (*pEnd != '\0') ++pEnd; //翻转句子 Reverse(pSetence, --pEnd); //翻转单词 char* pHead = pSetence; char* pTail = pHead; while (*pHead != '\0') { if (*pHead == ' ') { ++pHead; ++pTail; } else if (*pTail == ' ' || *pTail == '\0') { Reverse(pHead, --pTail); pHead = ++pTail; //指向下一个单词的开始或'\0' } else { ++pTail; } } return pSetence; } int main() { char String[] = "I am a student."; ReveseWordOrder(String); int nlength = sizeof(String) / sizeof(char); cout << String; cout << endl; system("pause"); return 0; }
相关文章推荐
- 面试经典(1)---翻转句子中单词的顺序
- 剑指offer-面试题42-翻转单词顺序VS左旋转字符串
- 7.翻转句子中单词的顺序[ReverseWordOrderInSentence]
- 翻转句子中单词的顺序
- 面试题42:翻转单词顺序
- 新解法之翻转句子中单词的顺序(不用两次翻转,用两个指针)
- 第10 题 翻转句子中单词的顺序。
- 翻转句子中单词的顺序
- 翻转句子中单词的顺序(程序员面试题精选100题)
- 微软算法100道题-----翻转句子中单词的顺序
- 翻转字符串中单词的顺序
- 算法习题10:翻转句子中单词的顺序
- 九度OJ-题目1361:翻转单词顺序
- 剑指offer-面试题42-翻转单词顺序VS左旋转字符串
- 10.翻转句子中单词的顺序。
- 翻转句子中单词的顺序
- 翻转句子中单词的顺序 【微软面试100题 第十题】
- 翻转句子中单词的顺序
- 翻转句子中单词的顺序和字符串的旋转操作 c++面试题
- 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不改变