,然后解析整个字符串直到找到 字符并以分离的字符串存储。我想知道有没有更好的方法?谢谢,c++,C++" /> ,然后解析整个字符串直到找到 字符并以分离的字符串存储。我想知道有没有更好的方法?谢谢,c++,C++" />

我如何接受这样的字符串输入? 如果我有一个包含未知单词数的字符串,我必须用C++中的多个字符串扫描它。我怎么做 For eg: "I am a boy". I want, each of these individual words to be in a string. "My name is John Lui". Each of these as well. 我可以想到的一种方法是在C++中使用 GETLeION/COD>,然后解析整个字符串直到找到 字符并以分离的字符串存储。我想知道有没有更好的方法?谢谢

我如何接受这样的字符串输入? 如果我有一个包含未知单词数的字符串,我必须用C++中的多个字符串扫描它。我怎么做 For eg: "I am a boy". I want, each of these individual words to be in a string. "My name is John Lui". Each of these as well. 我可以想到的一种方法是在C++中使用 GETLeION/COD>,然后解析整个字符串直到找到 字符并以分离的字符串存储。我想知道有没有更好的方法?谢谢,c++,C++,另外,我想知道,在getline命令中使用delimiter时,getline基本上会扫描输入字符串,直到找不到点分隔符,并将字符串的该部分放入新字符串中。但是,我想知道,如果分隔符根本不存在,那么会发生什么?它是抛出异常还是接收整个字符串直到换行符?谢谢 但是您可以使用std::getline 它使用字符串而不是字符数组。使用字符串比较容易 因为它们知道自己的尺寸,所以它们会自动增长,而你不必这样做 担心空终止字符等。也是 可以使用适当的 字符串构造函数 您可以通过以下方式完成: 如果您这样认

另外,我想知道,在
getline
命令中使用
delimiter
时,getline基本上会扫描输入字符串,直到找不到点分隔符,并将字符串的该部分放入新字符串中。但是,我想知道,如果分隔符根本不存在,那么会发生什么?它是抛出异常还是接收整个字符串直到换行符?谢谢

但是您可以使用std::getline

它使用字符串而不是字符数组。使用字符串比较容易 因为它们知道自己的尺寸,所以它们会自动增长,而你不必这样做 担心空终止字符等。也是 可以使用适当的 字符串构造函数

您可以通过以下方式完成:

如果您这样认为,希望每个单词都存储在一个
向量中,您可以这样做:

// stringstream::str
#include <string>       // std::string
#include <iostream>     // std::cout
#include <sstream>      // std::stringstream, std::stringbuf
#include <vector>
using namespace std;
int main ()
{
    vector <string> V;
    V.clear();
    std::string str;
    getline( std::cin, str );
    std::stringstream ss;
    ss<<str;
    std::string s,s1;
    while(ss>>s)
    {
        V.push_back(s);
    }
    return 0;
}
//stringstream::str
#include//std::string
#include//std::cout
#包括//std::stringstream、std::stringbuf
#包括
使用名称空间std;
int main()
{
向量V;
V.清除();
std::字符串str;
getline(标准::cin,str);
std::stringstream-ss;
sss)
{
V.推回;
}
返回0;
}

但这将把整个字符串作为一个变量的输入。我想把每个单词都放在一个单独的字符串变量中。@hans
while(cin>>word){…}
then。请读一本关于基础知识的书@现在你可以看到答案了也可以正常工作。
I
am
a
boy
// stringstream::str
#include <string>       // std::string
#include <iostream>     // std::cout
#include <sstream>      // std::stringstream, std::stringbuf
#include <vector>
using namespace std;
int main ()
{
    vector <string> V;
    V.clear();
    std::string str;
    getline( std::cin, str );
    std::stringstream ss;
    ss<<str;
    std::string s,s1;
    while(ss>>s)
    {
        V.push_back(s);
    }
    return 0;
}