Visualizzazione dei risultati da 1 a 6 su 6

Discussione: [c]problema strtok

  1. #1
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    100

    [c]problema strtok

    salve amici ho un problema :vorrei data una stringa del tipo "aaa,bbb,ccc,ddd,eee.lo" stampare ogni sottostringa seprata dal separatore "," tranne l ultima sottostringa(nell esempio eee.lo) che la voglio invece salvare in una stringa per un altra elaborazione...come posso fare? mi sono avvicinato alla soluzione
    int main()
    {
    char s[] = "aaa,bbb,ccc,ddd,eee.lo";
    char* p;
    printf("Stringa completa: \n %s\nStringa spezzata:\n",s);
    p = strtok(s, ",");
    while (p != NULL)
    {
    printf("%s\n", p);
    p = strtok(NULL, ",");
    }
    return 0;
    }
    stampa
    aaa
    bbb
    ccc
    ddd
    eee.lo


    io vorrei che stampasse


    aaa
    bbb
    ccc
    ddd

    e che mi salvasse l ultima sottostringa in una variabile char *ultimo...ho provato in tutti i modi ma non riesco...chi puo darmi una mano ??
    grazie
    df

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    56
    codice:
    int main()
    {
       char s[] = "aaa,bbb,ccc,ddd,eee.lo";
       char* p;
       char *ultimo;
       printf("Stringa completa: \n %s\nStringa spezzata:\n",s);
       p = strtok(s, ",");
       while (p != NULL)
       {
          printf("%s\n", p);
          strcpy(ultimo, p); 
          p = strtok(NULL, ",");
       }
       return 0;
    }

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2010
    Messaggi
    100
    la tua soluzione proposta è errata stampa solo
    aaa
    df

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    codice:
       
       while(p)
       {
          ultimo=p; 
          p = strtok(NULL, ",");
          if(p) printf("%s\n", ultimo);
       }
    
       printf("ultimo: %s\n", ultimo);
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    56
    Originariamente inviato da esoni
    la tua soluzione proposta è errata stampa solo
    aaa
    L'ho provata ora, compilandola con Dev-C, e funziona.

    Ma comunque la soluzione di oregon è molto più elegante

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Originariamente inviato da Kej
    L'ho provata ora, compilandola con Dev-C, e funziona.
    Scusa Kej, ma il puntatore ultimo non punta ad una zona di memoria allocata e quindi l'uso della strcpy è sicuramente sbagliato (con effetti imprevedibili, può sovrascrivere memoria senza accorgersene o crashare).
    No MP tecnici (non rispondo nemmeno!), usa il forum.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.