翻转句子中单词的顺序-运用vector
2013-07-28 10:51
162 查看
题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。
为简单起见,标点符号和普通字母一样处理。
例如输入“I am a student.”,则输出“student. a am I”。
小编选择使用vector处理单词顺序,遇到的主要问题是vector的逆序输出。
应该是这样的~
iter = m_set.end();
iter--;
for(;;iter--)
{
do something...
if(iter==m_Set.begin())break;
}
完整代码:
为简单起见,标点符号和普通字母一样处理。
例如输入“I am a student.”,则输出“student. a am I”。
小编选择使用vector处理单词顺序,遇到的主要问题是vector的逆序输出。
应该是这样的~
iter = m_set.end();
iter--;
for(;;iter--)
{
do something...
if(iter==m_Set.begin())break;
}
完整代码:
#include<iostream> #include <vector> #include<cstdlib> using namespace std; void Overturn(char s[],int n) { vector<char> a; int i=n-1;//从后向前遍历 vector<char>::iterator iter; while(i>=0) { if(s[i]==' ') { iter = a.end(); iter--; for(;;iter--) { cout<<*iter; if(iter==a.begin())break; } cout<<" "; a.clear(); }//遇到空格,就逆序输出单词,并清空容器 if(s[i]!=' ') { a.push_back(s[i]); } i--; } iter = a.end(); iter--; for(;;iter--) { cout<<*iter; if(iter==a.begin())break; } cout<<endl; } void main() { char s[20]="we are student."; int m=strlen(s); Overturn(s,m); }
相关文章推荐
- ODOA(1) 翻转句子中单词的顺序(C语言实现)
- 翻转句子中单词的顺序。
- 翻转句子中单词的顺序,但单词内字符的顺序不变
- 程序员面试题精选100题(07)-翻转句子中单词的顺序[算法]
- 翻转句子中单词的顺序
- 翻转句子中单词的顺序 C语言
- C++: 输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。
- 题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。例如输入“I am a student.”,则输出“student
- 翻转句子中单词的顺序(10)
- 翻转句子中单词的顺序
- 【练习】翻转句子中单词的顺序
- 微软算法100道题-----翻转句子中单词的顺序
- 翻转句子中单词的顺序
- 翻转句子中单词的顺序
- 翻转句子中单词的顺序
- 新解法之翻转句子中单词的顺序(不用两次翻转,用两个指针)
- 翻转句子中单词的顺序(程序员面试题精选100题)
- No10、翻转句子中单词的顺序
- 10、翻转句子中单词的顺序
- java算法实现之--输入一个英文句子,翻转句子中的单词顺序,但单词内字符的顺序不变