Funzione C

di il
1 risposte

Funzione C

Salve a tutti, allora stavo cercando una funzione in particolare. Ho un file con scritto Cognome Nome, insomma un file con dentro scritto nomi e cognomi e cerco una funzione che mi legga una riga alla volta e mi separi cognome e nome e li metta in un array. So che esiste l'ho già usata però non mi ricordo il nome, grazie.

1 Risposte

  • Re: Funzione C

    Una volta letta una riga del file, per separare il cognome dal nome puoi usare la fuzione strtok, di cui ti scrivo il prototipo:

    char* strtok(s,ct)
    la quale ricerca in s i token delimitati dai caratteri di ct (in questo caso uno spazio, cioè " ", ma dopo ti dirò i problemi di ciò).
    Una serie di chiamate a strtok(s,ct) scinde s in token, ognuno delimitato da un carattere di ct. Alla prima invocazione nella serie, la funzione ha argomento s diverso da NULL; trova il primo token di s che consista di caratteri non in ct; termina sostituendo il carattere successivo di s con '\0', restituendo un puntatore al token.
    Le chiamate successive, segnalate da un argomento s pari NULL, restituiscono il successvo token di questo tipo, cercandolo a partire dal punto della stringa immediatamente dopo la fine del token precedente.
    La funzione restituisce NULL quando non trova più alcun token.
    La stringa ct può variare a seconda di ciascuna chiamata.

    Ora, usando come delimitarore lo spazio " " avresti dei problemi nel caso di cognomi composti da più parole e nel caso di più nomi, ti conviene quindi usare come delimitatore nel file, per distinguere un cognome da un nome, un altro carattere tipo +,-, ecc...

    se non ti è chiaro qualcosa chiedimi pure, ciao
Devi accedere o registrarti per scrivere nel forum
1 risposte