dzielenie stringa

Odpowiedz Nowy wątek
2015-01-17 05:37
anonymous23456
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ć.

Pozostało 580 znaków

2015-01-17 06:02
0

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


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2015-01-17 10:30
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;
}

Pozostało 580 znaków

2015-01-17 10:59
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++


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...
edytowany 2x, ostatnio: Shalom, 2015-01-17 11:03
W przypadku drugiej wersji (dla C++ 03) zamiast std::copy wystarczy dodać dodatkowe nawiasy. - satirev 2015-01-17 11:21
Człowiek uczy się całe życie ;) - Shalom 2015-01-17 11:23
Wyciągnąłem ze szpargałów - spartanPAGE 2015-01-17 11:41

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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