Witam, chcę z napisać funkcję pozwalającą podzielić napis wejściowy na fragmenty i zwracającą wektor napisów. Domyślnym separatorem fragmentów powinna być spacja, ale funkcja powinna mieć opcjonalny argument definiujący znak separatora.
Main powinien wyglądać mniej więcej tak:
std::string sentence = "Ala ma kota";
std::vector<std::string> words = split(sentence); // wynik: {"Ala", "ma", "kota"}
std::string csv = "Mount Everest,8848,1953";
std::vector<std::string> data = split(csv, ','); // wynik: {"Mount Everest", "8848", "1953"}*
Nie wiem jak mam przypisać wektorowi te wyrazy. Próbowałam to zrobić na początek innym sposobem:
void split(string zdanie)
{
vector<string> podz;
for(int i=0; i<zdanie.length(); i++)
{
if(zdanie[i]==' ')
{
podz.push_back(zdanie.substr(i+1, ' '));
}
cout<<podz[i]<<endl;
}
}
int main()
{
std::string sentence = "Ala ma kota";
//std::vector<std::string> words; //split(sentence); // wynik: {"Ala", "ma", "kota"}
//cout<<words[0]<<endl;
split(sentence);
return 0;
}
Ale również nie działa. Co jest tutaj źle i co zrobić żeby można było użyć maina takiego jak napisałam wyżej?