none
Como dividir uma string utilizando um delimitador com mais de 1 caracter RRS feed

  • Pergunta

  • Caros,

    Possuo a seguinte string:

    string str = "--- Tipo Arquivo: CFF --- Tamanho: 1.88 KB --- Criado em: 12/12/2012 --- UTC: (-3:00) Brasilia "

    Gostaria de delimitar a string pelo delimitador "---".

    Cheguei a utilizar o método:

    void split(string str, string separator, vector<string>* results)
    {
        int found;
        found = str.find_first_of(separator);
    
        while(found != string::npos)
        {
            if(found > 0)
            {
                results->push_back(str.substr(0,found));
            }
    		
            str = str.substr(found+1);
            found = str.find_first_of(separator);
        }
    
        if(str.length() > 0)
        {
            results->push_back(str);
        }
    }

    No entando mesmo informando o delimitador como "---", ele considera que o delimitador é "-" e com isso não quebra a string corretamente.

    Utilizando o método acima, obtenho o seguinte resultado:

    &result
       [size] 5
    [0] Tipo Arquivo: CFF
    [1] Tamanho: 1.88 KB
    [2] Criado em: 12/12/2012
    [3] UTC: (
    [4] 3:00) Brasilia

    Sendo que o correto seria:

    &result
       [size] 4
    [0] Tipo Arquivo: CFF
    [1] Tamanho: 1.88 KB
    [2] Criado em: 12/12/2012
    [3] UTC: (-3:00) Brasilia

    Enfim, mesmo o delimitador informado sendo "---", ele considera na verdade que o delimitador é apenas "-".

    Alguém sabe alguma forma de resolver isso?


    • Editado Douglas Canto quarta-feira, 12 de dezembro de 2012 11:58
    segunda-feira, 10 de dezembro de 2012 12:13

Respostas