C++如何将用户输入字符串拆分为多个字符串
问题描述:
即时尝试获取用户输入:“aa bb cc dd ee”等存储在单个字符串中并将其放入多个字符串中string_1“aa”,string_2 “BB”,STRING_3 “CC”,STRING_4 “DD”,STRING_5 “EE” 等C++如何将用户输入字符串拆分为多个字符串
string str;
cin >> str; //user input
//code to split the string
string str_1, str_2, str_3, str_4, str_5;
答
的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;
会做你想要达到的目标。
如果你真的需要有存储到一个字符串1的输入,你应该使用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;
+0
谢谢!这完美的作品! – jelle66
答
#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
}
}
这样的事情。
'cin >> str;'只会收到您输入的第一个单词。 – user0042
可能的重复https://*.com/questions/236129/most-elegant-way-to-split-a-string – Galik
你试过了吗?cin >> str_1 >> str_2 >> str_3 >> str_4 >> str_5 ;'? –