dzielenie stringa

0

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

Podziel string po spacjach i wybierz z wynikowej tablicy k-ty wyraz.

0

http://ideone.com/tJHK8b

#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++

1 użytkowników online, w tym zalogowanych: 0, gości: 1