Как разделять строку в пространстве и возвращать первый элемент? Например, в Python вы могли бы сделать:Разделить строку в пространстве и вернуть первый элемент в C++
string = 'hello how are you today'
ret = string.split(' ')[0]
print(ret)
'hello'
Делать это в C++, я предположил бы, что я должен был бы разделить строку первым. Глядя на это в Интернете, я видел несколько длинных методов, но что было бы лучшим, которое работает как код выше? Пример для C++ расколоть, что я нашел
#include <boost/regex.hpp>
#include <boost/algorithm/string/regex.hpp>
#include <iostream>
#include <string>
#include <vector>
using namespace std;
using namespace boost;
void print(vector <string> & v)
{
for (size_t n = 0; n < v.size(); n++)
cout << "\"" << v[ n ] << "\"\n";
cout << endl;
}
int main()
{
string s = "one->two->thirty-four";
vector <string> fields;
split_regex(fields, s, regex("->"));
print(fields);
return 0;
}
вы встречаете [это] (http://stackoverflow.com/questions/236129/ ли расщепление-а-нить в-с? RQ = 1)? Я не могу сказать, как это иначе. – chris
oh и получение разделения для возврата в качестве списка является оптимальным. из того, что я видел, этот код C++ возвращает его как «один» «два» «тридцать четыре» – riyoken
, вероятно, запускают это через что-то вроде цикла for. – riyoken