[英]Same way to split string but get different result
我正在尝试拆分两个不同的字符串。 我使用相同的方法,但得到不同的结果。 我花了很多时间来寻找问题。 有什么办法可以解决这个问题吗? 谢谢!
// data = 36191d2a 9.18 1.41
vector<string> SplitRecvData(string data){
vector<string> words{};
char delimiter = ' ';
istringstream iss(data);
copy(
std::istream_iterator<string>(iss),
std::istream_iterator<string>(),
std::back_inserter(words));
vector<string> splitData = words;
for(int i=0;i<splitData.size();i++) {
cout << "i= " << ", " << splitData[i] << endl;
}
return splitData;
}
// Result
i= 0, 36191d2a
i= 1, 9.18
i= 2, 1.41
// data = Hum,Temp,Time
vector<string> SplitSubTopic(string data){
vector<string> words{};
char delimiter = ',';
istringstream iss(data);
copy(
std::istream_iterator<string>(iss),
std::istream_iterator<string>(),
std::back_inserter(words));
vector<string> splitData = words;
for(int i=0;i<splitData.size();i++) {
cout << "i= " << ", " << splitData[i] << endl;
}
return splitData;
}
// Result
i= 0, Hum,Temp,Time
您没有使用定界符,这应该可以工作
istringstream my_stream(data);
// To store the stream string
string token;
size_t pos = -1;
// Traverse till stream is valid
while (my_stream >> token) {
// If ',' is found then tokenize the string token
while ((pos = token.rfind(',')) != std::string::npos) {
token.erase(pos, 1);
}
// Print the tokenize string
cout << token << '\n';
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.