输入一个字符串并将其除以单词

时间:2017-08-19 10:39:21

标签: c++ string vector

我需要编写一个基于程序的代码,该程序可以将句子或段落的单词与数据库进行比较,就好像它是文本校正器一样。我的问题是,我必须在控制台上输入我想要作为字符串更正的文本,然后将其分成存储在C ++中的字符串向量中的单词。我尝试了一千种方法,但我无法完成它。 这是我上次尝试的代码:

computed: {
  progress() {
      return game.progress.status.turn_status.current_stage
  }
}

当我执行此代码时,我什么也没得到,好像程序什么也没做。你能帮帮我吗?

这是最后一件事(一件):

std::cout << "Enter the text: ";
std::string sentence;
std::vector<std::string> vText;
while (getline(std::cin, sentence)){
    std::stringstream w(sentence);
    std::string word;
    while(w >> word)
        vText.push_back(word);
}

1 个答案:

答案 0 :(得分:0)

首先,欢迎堆叠交换。由于您没有对ask a good question做出合理的努力,您的问题已被投票否决。

请特别注意How to create a Minimal, Complete, and Verifiable example

我认为你要做的是这样的事情:

#include <iostream>
#include <string>
#include <sstream>
#include <vector>

std::vector<std::string>  read_text() {

    std::cout << "Enter the text: ";
    std::string sentence;
    std::string word;
    std::vector<std::string> vText;
    while(getline(std::cin, sentence)){

        std::stringstream ss(sentence);
        while ( getline( ss, word, ' ' ) ) {
            if (word.compare("quit") == 0)
                return vText;

            vText.push_back(word);
        }
    }
}

int main() {

    std::vector<std::string> test_vector = read_text();

    std::cout << "Vector : " << std::endl;
    for (int i=0;i<test_vector.size();i++){
            std::cout << test_vector[i] << std::endl;
    }
}

这将在空格上分割,并将你的单词添加到每个句子末尾的向量中。我想有更智能的解析方法,但这应该可以使你的测试代码正常工作。

希望有所帮助。