PDA

Visualizza la versione completa : [C] Dividere una stringa


misterx
10-05-2012, 13:28
ciao,
quello che vorrei ottenere dalla buf[] sotto il seguente output sfruttando le caratteristiche tella strtock():

192.168.84.211
NOME1
F
105
3

il problema che una volta arrivati al carattere F non pi sfruttabile tale strategia: cosa mi sfugge?



#include <stdio.h>
#include <string.h>

int main()
{
char *p;
char buf [] = "192.168.84.211,NOME1,F105.3";

p = strtok (buf, ",");

if (p != NULL)
printf ("trovato: %s\n", p);

p = strtok (NULL, ",");

if (p != NULL)
printf ("trovato: %s\n", p);

p = strtok (NULL, "F");

if (p != NULL)
printf ("trovato: %s\n", p);

return 0;
}

oregon
10-05-2012, 13:48
Il problema che nella stringa non hai un separatore vero e proprio. Una volta la virgola e un'altra il punto.

Se utilizzi solamente la virgola scrivi



p = strtok (buf, ",");
while (p != NULL)
{
printf ("%s\n", p);
p = strtok (NULL, ",");
}


e sull'ultima parola esegui una strtok con il punto

misterx
10-05-2012, 14:00
grazie,
provo la soluzione da te proposta

Loading