Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: split functie in C++ (a la PHP zeg maar)  (gelezen 2446 keer)

split functie in C++ (a la PHP zeg maar)
« Gepost op: 2010/05/30, 23:30:18 »
ik ben een programma aan het maken waarvoor ik nogal veel met tekst moet werken,
en het zou heel handig zijn een functie te hebben zoals php's split() functie.
alleen ik ken niet een degelijke functie in de STL van C++.
en ik ken ook geen standaard Unix functie om dit te doen.

wel een detail: het gaat om een standaard functie die het op de meeste Unix systemen doet.
en dan vooral, op Linux en FreeBSD.

maar ik kan enkel een vinden voor Win32 -_-


ADSL? nee, neem ADHD, dat is pas snel!

Re: split functie in C++ (a la PHP zeg maar)
« Reactie #1 Gepost op: 2010/05/31, 18:11:10 »
ik ben een programma aan het maken waarvoor ik nogal veel met tekst moet werken,
en het zou heel handig zijn een functie te hebben zoals php's split() functie.
alleen ik ken niet een degelijke functie in de STL van C++.
en ik ken ook geen standaard Unix functie om dit te doen.

wel een detail: het gaat om een standaard functie die het op de meeste Unix systemen doet.
en dan vooral, op Linux en FreeBSD.

maar ik kan enkel een vinden voor Win32 -_-

Hmm, kan ik ook niet zo direct opkomen.

Zelfs LibSylph blijkt er geen te hebben... vreemd...

Zal even zoeken...

EDIT: De stl heeft geen split() functie. Je kan wel C's strtok-functie gebruiken.
* SeySayux is off_t o code Sylph::String::split()
« Laatst bewerkt op: 2010/05/31, 18:13:18 door SeySayux »
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Re: split functie in C++ (a la PHP zeg maar)
« Reactie #2 Gepost op: 2010/07/12, 21:42:15 »
die strtok functie lijkt wel ongeveer wat ik zoek.
php's split() functie (overigens vervangen door explode() maar die lijkt er ook op...)

maar ik had gaag een die het data-type basic_string aan kan, omdat ik enkele van de functies daarvan namelijk goed kan gebruiken.


ADSL? nee, neem ADHD, dat is pas snel!

Re: split functie in C++ (a la PHP zeg maar)
« Reactie #3 Gepost op: 2010/07/12, 22:14:24 »
die strtok functie lijkt wel ongeveer wat ik zoek.
php's split() functie (overigens vervangen door explode() maar die lijkt er ook op...)

maar ik had gaag een die het data-type basic_string aan kan, omdat ik enkele van de functies daarvan namelijk goed kan gebruiken.
Sorry, de STL zuigt. Kijk of boost iets heeft...
I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Re: split functie in C++ (a la PHP zeg maar)
« Reactie #4 Gepost op: 2010/07/26, 10:57:50 »
mah, de STL geeft ook veel handige functies, maar inderdaad er mis nog wel wat.


ADSL? nee, neem ADHD, dat is pas snel!

Re: split functie in C++ (a la PHP zeg maar)
« Reactie #5 Gepost op: 2010/07/26, 11:26:07 »
Citaat
Array< String > Sylph::String::split  (  Array< uchar > delimiters = spacechars   )  const

Tokenizes a string with a given set of delimiters.

This will split a String into tokens, with as boundary any character given in the array. Empty strings will not be included in the array.

Parameters:
       delimiters    A set of delimiters, by default equal to spacechars.

Returns:
    An array of Strings, containing each token.
Bron: http://libsylph.sourceforge.net/docs/class_sylph_1_1_string.html#aac5f945bbec33782214fa8c4ac7415a8

Array<String> String::split(Array<uchar> delimiters) const {
    Vector<String> toReturn;

    idx_t start = 0;
    idx_t end = 0;

    for(idx_t i = 0; i < length(); ++i) {
        for(idx_t j = 0; j < delimiters.length; ++j) {
            if(at(i) == delimiters[j]) {
                end = i;
                if(start != end) toReturn.add(substring(start,end-1));
                start = end + 1;
            }
        }
    }

    return toReturn.toArray();
}
Bron: http://github.com/SeySayux/libsylph/blob/master/src/Sylph/Core/String.cpp

Is dit nuttig?

I use a Unix-based system, that means I'll get laid as often as I have to reboot.
LibSylph
SeySayux.net

Re: split functie in C++ (a la PHP zeg maar)
« Reactie #6 Gepost op: 2010/07/26, 12:06:43 »
ja dat lijkt wel wat ik zoek ja.


ADSL? nee, neem ADHD, dat is pas snel!