Witam. Napotkałem następujący problem:
Chcę napisać funkcje
string subword (const string &A, unsigned count)
która ze stringa A wydobędzie count-y wyraz i zwróci go jako string.
Przykłady wywołania dla A = "ala ma kota":
subword (A, 1): "ala"
subword(A, 3): "kota"
Jakoś nie mam pomysłu jak się za to zabrać.
0
0
Podziel string po spacjach i wybierz z wynikowej tablicy k-ty wyraz.
0
#include <iostream>
#include <vector>
#include <string>
using namespace std;
vector<string> split(const string &text, const string &sep){
vector<string> tokens;
size_t start = 0, end = 0;
while((end = text.find(sep, start)) != string::npos){
tokens.insert(tokens.end(), text.substr(start, end - start));
start = end + 1;
}
tokens.insert(tokens.end(), text.substr(start));
return tokens;
}
string subword(const string &str, size_t id){
return split(str, " ").at(id);
}
int main(){
string s = "Ala ma kota";
cout << subword(s, 0) << endl;
cout << subword(s, 2) << endl;
return 0;
}
4
@spartanPAGE a może
istringstream iss(text);
vector<string> tokens{istream_iterator<string>{iss}, istream_iterator<string>{}};
? ;)
Albo
istringstream iss(text);
vector<string> tokens;
copy(istream_iterator<string>(iss), istream_iterator<string>(), back_inserter(tokens));
jeśli to starsza wersja c++