题解 | #单词倒排#C++利用getline和vector

单词倒排

https://www.nowcoder.com/practice/81544a4989df4109b33c2d65037c5836

#include <iostream>
#include <vector>
#include <sstream>
//总体思路是将非字母字符转换成空格,然后利用getline分割,并压入vector容器,最后倒序遍历
using namespace std;
void ReverseWords(string input) {
  //遍历字符串,将非字母字符变成空格
    for (int i = 0; i < input.size(); i++) {
        if (!isalpha(input[i])) {
            input[i] = ' ';
        }
    }

    vector<string> tokens;//声明一个vector容器,以便将存储的字符串压入容器
    string token;//声明一个字符串,以便存储读取的字符串
    istringstream tokenStream(input);//将字符串转换成输入流
    char delimiter = ' '; //声明分割符
//利用getline读取一行文本,直到遇到特定的分隔符(默认是换行符'\n')
    while (getline(tokenStream, token, delimiter)) {
        tokens.push_back(token);
    }
//倒序遍历打印vector容器的元素,加上空格输出
    for (int i = tokens.size() - 1; i >= 0; i--) {
        cout << tokens[i] << ' ';
    } 
    
    
}
int main() {
    string s;
    getline(cin, s);
    ReverseWords(s);
    return 0;
}
// 64 位输出请用 printf("%lld")

全部评论

相关推荐

深夜书店vv:腾讯是这样的,去年很多走廊都加桌子当工区
点赞 评论 收藏
分享
05-14 20:34
门头沟学院 Java
窝补药贝八股:管他们,乱说,反正又不去,直接说680
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务