C ++如何将用户输入字符串拆分为多个字符串

时间:2017-07-19 21:34:44

标签: c++ string split user-input

我试图获得用户输入:" aa bb cc dd ee"等等,存储在单个字符串中,并将其放在多个字符串string_1" aa",string_2" bb",string_3" cc",string_4" dd",string_5" ee"等

string str;
cin >> str; //user input

//code to split the string

string str_1, str_2, str_3, str_4, str_5;

2 个答案:

答案 0 :(得分:1)

#include <stringstream>

int main()
{
    std::string MasterString = "Super cali\nfragelistic \n expialadogis\n then more words\n hello world";
    std::stringstream iss(MasterString);

    while(iss.good())
    {
        std::string SingleLine;
        getline(iss,SingleLine,'\n');
        // Process SingleLine here
    }
}
像这样的东西。

答案 1 :(得分:0)

std::istream& operator>>(std::istream&, std::string)已经为你做了拆分。输入与空格分开。

所以写作

std::string str_1, str_2, str_3, str_4, str_5;
std::cin >> str_1 >> str_2 >> str_3 >> str_4 >> str_5;

会做你想要达到的目标。

如果您确实需要将输入存储到单个字符串1st中,则应使用std::getline()函数:

std::string str;
std::getline(std::cin,str);

并使用std::istringstream分割各个值:

std::istringstream iss(str);
iss >> str_1 >> str_2 >> str_3 >> str_4 >> str_5;