Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    577

    [c] dividere una stringa

    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?


    codice:
    #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;
    }

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,466
    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

    codice:
       p = strtok (buf, ",");
       while (p != NULL)
       {
          printf ("%s\n", p);
          p = strtok (NULL, ",");
       }
    e sull'ultima parola esegui una strtok con il punto
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2001
    Messaggi
    577
    grazie,
    provo la soluzione da te proposta

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.