Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408

    [C] Leggere stringhe separate da un # e inserirle in un vettore

    Salve a tutti. Mi sono imbattuto in un esercizio che non riesco a risolvere. Ho un file di testo da cui leggere le seguenti parole:
    parola#sinapsi#bilaterale#concetto#frumento#stasi

    L'utente inserisce il carattere di separazione, e poi dal file devo leggere le parole inserendole in un vettore. Non riesco a capire come inserire le parole escludendo il #.
    Qualche consiglio? Non ho scritto codice perchè è la parte iniziale dell'esercizio.. Potrei scorrere la riga di testo finchè l'indice non è uguale a #? Ma non mi sembra l'idea giusta..
    Aiuto

  2. #2
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Puoi fare una copia del vettore in un altro array temporaneo.
    In un for che va da 0 a strlen(s)-1 (s = stringa che stai considerando, in pratica scandisci l' intera stringa), usi una variabile k che è inizialmente uguale a zero e fai così:
    1)Se il carattere è diverso da "#" lo copi nel vettore termporaneo, in posizione k e incrementi k;
    2)Altrimenti se il carattere è "#" non lo copi.

    E' semplice, ti basta un for con un solo if all' interno.

  3. #3
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Originariamente inviato da ramy89
    Puoi fare una copia del vettore in un altro array temporaneo.
    In un for che va da 0 a strlen(s)-1 (s = stringa che stai considerando, in pratica scandisci l' intera stringa), usi una variabile k che è inizialmente uguale a zero e fai così:
    1)Se il carattere è diverso da "#" lo copi nel vettore termporaneo, in posizione k e incrementi k;
    2)Altrimenti se il carattere è "#" non lo copi.

    E' semplice, ti basta un for con un solo if all' interno.
    Non credo di aver capito..
    Leggo la riga del file di testo e la copio tutta in un vettore. Poi scorro il vettore da 0 a strlen(vettore)-1 e poi inserisco in un altro vettore tutti i caratteri diversi da #?
    Io però ho bisogno di leggere parola per parola, oltre che eliminare il #..

  4. #4
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Se devi leggerlo parola per parola, puoi usare la strtok per dividere la stringa in token, dandogli come argomento il carattere "#".

  5. #5
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Ok tramite questo codice riesco a stampare a video le parole senza il #, ma come faccio per memorizzarle?

    codice:
    var=strtok(vettore, "#");
    while(var!=NULL){
         printf("%s\n", var);
         var=strtok(NULL, "#");
    }

  6. #6
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Vuoi memorizzarle in tanti array?

  7. #7
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Originariamente inviato da ramy89
    Vuoi memorizzarle in tanti array?
    No in uno soltanto, in modo poi da lavorare sulle parole.

  8. #8
    Utente bannato
    Registrato dal
    Oct 2010
    Messaggi
    1,219
    Le parole le hai già in un solo array, che è var.
    Solo che se lo stampi ti stampa solo la prima parola, perchè devi prendere il token successivo, questo lo puoi fare usando di nuovo la strtok passandogli NULL come argomento:
    codice:
    var=strtok(vettore,"#");
    while(var!=NULL)
    {
        printf("%s\n",var);
        var=strtok(NULL,"#");
    }
    L' esempio c' era nel link della strtok che ho postato.

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    La strtok presuppone che tu abbia tutta la riga su cui operare già all'interno di un vettore di char ...

    Se è così allora si può continuare a discutere seguendo una certa via, altrimenti le cose cambiano.

    Se devi ottenere le singole parole dal file, leggendo carattere per carattere fino a (ed escluso) il #, allora è un'altra storia.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it L'avatar di goatboy
    Registrato dal
    Mar 2011
    residenza
    Salerno
    Messaggi
    408
    Originariamente inviato da oregon
    La strtok presuppone che tu abbia tutta la riga su cui operare già all'interno di un vettore di char ...

    Se è così allora si può continuare a discutere seguendo una certa via, altrimenti le cose cambiano.

    Se devi ottenere le singole parole dal file, leggendo carattere per carattere fino a (ed escluso) il #, allora è un'altra storia.
    Con la strtok riesco a stamparle singolarmente, ma a me serve salvarle quelle parole.. hai qualche consiglio?

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.