字符串 单词翻转

给定一个句子,翻转其中的单词 (单词之间由不确定的空格分隔)

如: I come from china  =>   china from come I

基本思路:读入字符串,按照空格,单词依次读取进一个 单词表中,而后反向拼接单词表即可

注意点:空格可能包含多个,读取终止条件是,读取空格时遇到了字符,读取单词时遇到了空格,以及读取到末尾时

 string ReverseSentence(string str) {
        string res;
        if(str.size()==0)
            return res;
        vector<string> words;//分割的单词表
        bool flag=true;//当前划分出来的是单词还是空格
        string one_word;
        for(int i=0;i<str.size();i++)
        {
            
            if(flag==true) //正在读取单词
            {
                if(str[i]==char(32)) //读取到空格
                {
                    words.push_back(one_word);
                    one_word.clear();//重新清理
                    flag=false;//开始读取空格
                    one_word+=str[i];
                }
                else
                {
                    one_word+=str[i];
                    if(i==str.size()-1)
                        words.push_back(one_word);
                }
            }
            else
            {
                if(str[i]!=char(32))
                {
                    words.push_back(one_word);
                    one_word.clear();
                    flag=true;
                    one_word+=str[i];
                }
                else{
                    one_word+=str[i];
                    if(i==str.size()-1)
                        words.push_back(one_word);
                }
                
            }
            
        }
        //
        for(int i=0;i<words.size();i++)
            res+=words[words.size()-1-i];
        return res;
  
    }

猜你喜欢

转载自blog.csdn.net/qq_33369979/article/details/88713521
今日推荐