Quebrar string em C

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 “;” ?

[code] #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;
}
[/code]

1 curtida

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.

1 curtida