ToolDev.de
 All Services are provided by tooldev.de

Split für std::string

Split ist ein Algorithmus der einen String zerteilt. Er wird da geteilt, wo ein bestimmtes Trennzeichen gefunden wird.
In C++ gibt es die Möglichkeit die Strings in einem std::vector<std::string> zu speichern. Dies wird im folgenden gezeigt:

void Tool::split(std::string str, std::vector<std::string> & args, char separator)
{
    int i;
    size_t pos, old = 0, n;
    n = std::count(str.begin(), str.end(), separator);
    args.resize(n + 1);
    for (i = 0; old != std::string::npos; ++i)
    {
        if (i)
            ++old;
        pos = str.find(separator, old);
        if (pos >= old + 1)
            args[i] = str.substr(old, pos - old);
        else
            --i;
        old = pos;
    }
    args.resize(i);
}