[RISOLTO][C] funzione strtok

di il
21 risposte

21 Risposte - Pagina 2

  • Re: [RISOLTO][C] funzione strtok

    if(scelta2==3)
                    {
                        fgets(stringa,150,new);
                        strcpy(stringa2,stringa);
                        p = strtok(stringa, " ");
                        p = strtok(NULL, " ");
                        p = strtok(NULL, " ");
                        p = strtok(NULL, " ");
                        printf("%s ",p);
                        if(strcmp(p,parola)==0)
                            printf("%s",stringa2);
                    }
    
    Questo è il codice, il printf nell'if non viene mai eseguito anche se p stampato prima corrisponde alla parola inserita..
  • Re: [RISOLTO][C] funzione strtok

    [quote="freshp"]
    if(scelta2==3)
                    {
                        fgets(stringa,150,new);
                        strcpy(stringa2,stringa);
                        p = strtok(stringa, " ");
                        p = strtok(NULL, " ");
                        p = strtok(NULL, " ");
                        p = strtok(NULL, " ");
                        printf("%s ",p);
                        if(strcmp(p,parola)==0)
                            printf("%s",stringa2);
                    }
    
    La fgets legge e lascia nella stringa il crlf alla fine ... controlla cosa c'è alla fine della stringa letta.
  • Re: [RISOLTO][C] funzione strtok

    Questo è il codice attuale:
    
    if(scelta2==3)
                    {
                        fgets(stringa,150,new);
                        strcpy(stringa2,stringa);
                        p = strtok(stringa, " ");
                        p = strtok(NULL, " ");
                        p = strtok(NULL, " ");
                        p = strtok(NULL, " ");
                        printf("%s %d %d\n",p,strlen(p),strlen(parola));
                        if(strcmp(p,parola)==0)
                            printf("%s",stringa2);
                    }
    
    Questo l'output prodotto:
    Inserire parola chiave: Calcio
    Basket
     7 6
    Calcio
     7 6
    Calcio 6 6
    Sandro Penny 3489078345  Calcio
    Premere un tasto per continuare . . .
    Come puoi vedere l'ultimo contatto in lista viene stampato..ma il penultimo no nonostante siano uguali (teoricamente). Ma nella lettura viene letto il fine riga credo..e quindi dalla strcmp non vengono viste come uguali..Giusto?
  • Re: [RISOLTO][C] funzione strtok

    Prova ad aggiungere dopo la

    fgets(stringa,150,new);

    la riga

    stringa[strlen(stringa)-1]=0;
  • Re: [RISOLTO][C] funzione strtok

    Così però l'ultimo mi taglia una lettera della categoria..
  • Re: [RISOLTO][C] funzione strtok

    Perché nell'ultima riga del file non sei andato a capo quando l'hai scritto ...

    Puoi sempre controllare prima di eliminare il carattere
    
    int lu=strlen(stringa)-1;
    if(stringa[lu]=='\n') stringa[lu]=0;
    
  • Re: [RISOLTO][C] funzione strtok

    Grazie mille per la pazienza oregon. Ora finalmente va bene, domani cercherò di ottimizzare qualcosa ma non credo di aver ancora bisogno di questo topic. Lo segno come risolto!
Devi accedere o registrarti per scrivere nel forum
21 risposte