`
zuroc
  • 浏览: 1290158 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

一道按单词逆转字符串的面试题

    博客分类:
  • C++
阅读更多
/*
python的string是不可变的,故无法进行in-place的反转;因而写一段C++代码作为演示
*/

//可以单独放入一个头文件
#include <algorithm>

using std::reverse;
using std::find;

template<class String>
String& reverse_word(String* str){
    typename String::iterator i=str->begin(),pre=i,end=str->end();  
    while(i!=end){
        i=find(pre,end,' ');
        reverse(pre,i);
        pre=i+1;
    }
    reverse(pre,i);
    reverse(str->begin(),str->end());
    return *str;
}

//主程序
#include <iostream>
#include <string>
using namespace std;
int main(){
    string c="idea good a have";//idea good a have

    do{
        cout<<reverse_word(&c)<<"\n\nPlease Input:";
    }while(getline(cin,c));

    return 0;
}
3
3
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics