C++ 从文本中提取字符串
我有一根绳子C++ 从文本中提取字符串,c++,c++11,stl,programming-languages,C++,C++11,Stl,Programming Languages,我有一根绳子 My name is bob.I am fine 我想把每个单词和“.”放在一个字符串向量中 如何在C++中使用GETLIN来实现这一点? 编辑: std::vector<std::string> words; std::string word; while (cin>> word) { words.push_back(word); } std::向量词; 字符串字; while(cin>>word){ 单词。推回(单词); } 我想把“.”作
My name is bob.I am fine
我想把每个单词和“.”放在一个字符串向量中
如何在C++中使用GETLIN来实现这一点?
编辑:
std::vector<std::string> words;
std::string word;
while (cin>> word) {
words.push_back(word);
}
std::向量词;
字符串字;
while(cin>>word){
单词。推回(单词);
}
我想把“.”作为一个不同的字符串,但我不能这样做。这不是最优雅的解决方案,但应该可以
#include <iostream>
#include <vector>
#include <string>
#include <sstream>
using namespace std;
vector<string> split(string str, char delimiter)
{
vector<string> internal;
stringstream ss(str);
string tok;
while(getline(ss, tok, delimiter))
{
internal.push_back(tok);
}
return internal;
}
int main(int argc, char **argv)
{
string str = "My name is bob.I am fine";
for(int i = 0; i < str.length(); i++)
{
if(str[i] == '.')
{
str.insert(i++," ");
str.insert(++i," ");
}
}
vector<string> sep = split(str, ' ');
for(string t : sep)
cout << t << endl;
}
#包括
#包括
#包括
#包括
使用名称空间std;
向量拆分(字符串str、字符分隔符)
{
向量内部;
stringstream ss(str);
弦托克;
while(getline(ss、tok、分隔符))
{
内部。推回(tok);
}
返回内部;
}
int main(int argc,字符**argv)
{
string str=“我叫鲍勃,我很好”;
对于(int i=0;i cout看起来像是一个家庭作业问题。请看这里,这是一个很好的问题。对于SO来说,这是一个离题的问题。有关主题的内容列表,请参阅。