Quebrar string em C

2 respostas
programaçãostringc
elvex

Galera, tenho umastring(que é char[]) com os seguintes dados: _**1;1;1;1;1.000000;1;1;988888881.**_

Como faço para dividir em várias strings (char[]) quebrando no “;” ?

2 Respostas

TalonNoxus
#include <stdio.h>
#include <string.h>
using namespace std;

int main()
{
    char str[] ="1;1;1;1;1.000000;1;1;988888881";
    char * pch;
    printf ("A separacao por um delimitador e chamado de split\n");
    pch = strtok (str,";");
    while (pch != NULL)
    {
        printf ("%s\n",pch);
        pch = strtok (NULL, ";");
    }
    return 0;
}
peczenyj

vamos la

a solução em ANSI C pode ser usando strtok

porém vc tem que tomar alguns cuidados.

primeiro, vc precisa saber que strtok altera a string original. veja se isso é importante pra vc.

segundo, se vc não sabe em compile time quantos elementos vc vai ter apor fazer a partilha da string, vc vai ter que descobrir em runtime , então se vc precisa colocar essas strings em um array (!) vc vai precisar alocar dinamicamente ( com malloc ).

se é pra apenas imprimir, é simples. se vc precisa colocar essas coisas em um vetor, precisa saber malloc/free ou outra mutreta.

Criado 23 de setembro de 2016
Ultima resposta 23 de set. de 2016
Respostas 2
Participantes 3