编辑1
我忘记说这个字符串必须从 cin
中获取
我有一个字符串,如 "Hi; my;; name is Andrea; and I like C++"。
我想创建一个用该字符串初始化的 stringstream,并获取最后一个 ;
之前的所有内容。
这是我尝试过的:
string ex("Hi; my;; name is Andrea;; and I like C++"), text, final_text;
stringstream loop_stream(ex);
int findComma = loop_stream.str().find(';');
do {
getline(loop_stream, text, ';');
loop_stream.ignore(1);
final_text += text;
loop_stream << loop_stream.rdbuf();
findComma = loop_stream.str().find(';');
while (findComma == 1) {
loop_stream.ignore(1);
}
findComma = loop_stream.str().find(';');
}
while (findComma != string::npos);
cout << "-" << final_text << "-" << endl;
但它根本不起作用... 我想要的输出结果是:
-Hi; my;; name is Andrea-
string::rfind
搜索最后一个';',然后使用string::substr
获取期望的子字符串呢? - bruno