Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - isolare stringhe file di testo
Forum - C/C++ - isolare stringhe file di testo - Pagina 2

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
Dark_Limit (Ex-Member)
Expert


Messaggi: 220
Iscritto: 15/01/2008

Segnala al moderatore
Postato alle 20:08
Venerdì, 25/01/2008
Ciao..Ma se invece di trovare una parola dovrei trovare ad esempio: "@ciao" ed estrapolare da questa parola solo la stringa ciao è fattibile allo stesso modo?

PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 0:48
Sabato, 26/01/2008
Testo quotato

Postato originariamente da Dark_Limit:

Ciao..Ma se invece di trovare una parola dovrei trovare ad esempio: "@ciao" ed estrapolare da questa parola solo la stringa ciao è fattibile allo stesso modo?



Se tu dovessi (attenzione alla congiuntivite ...) trovare "@ciao" ... in che senso?

Con un qualsiasi carattere prima della parola o proprio con quella ?

In ogni caso, puoi leggere la parola e, se e' piu' lunga di un carattere, confrontala con quella che cerchi a partire dal secondo ...

PM Quote
Avatar
Dark_Limit (Ex-Member)
Expert


Messaggi: 220
Iscritto: 15/01/2008

Segnala al moderatore
Postato alle 15:17
Sabato, 26/01/2008
Si scusami mi sono spiegato male..Cerco di spiegarmi meglio. Mettiamo che io ho un file di testo con all'interno questa stringa "ciaocomestai?"..posso fare un programma che legge solo la parola "come" e lascia perdere le altre?

PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 15:49
Sabato, 26/01/2008
io ho pensato una cosa cosi:

se la parola da cercare è "ciao" nella stringa "ciaocomestai", con la funzione strstr si ottiene la prima posizione di un carattere nella stringa(nel nostro caso cerchiamo "c" nella stringa ciaocomestai cioè 1 )e poi verificare se nell'insieme con le seguenti parole a quella trovata("c") otteniamo la parola "ciao".
Non so se mi sono spiegato...  

PM Quote
Avatar
Dark_Limit (Ex-Member)
Expert


Messaggi: 220
Iscritto: 15/01/2008

Segnala al moderatore
Postato alle 15:54
Sabato, 26/01/2008
Per ottenere le altre lettere uso la funzione gets()  dentro un ciclo while che non esce fino a che il file non ha raggiunto la fine? dicevi una cosa di questo tipo?

Ultima modifica effettuata da Dark_Limit il 26/01/2008 alle 15:56
PM Quote
Avatar
gantonio (Normal User)
Guru^2


Messaggi: 1532
Iscritto: 09/09/2007

Segnala al moderatore
Postato alle 16:41
Sabato, 26/01/2008
Beh ... se cambi le specifiche del problema, ovviamente non va piu' bene la soluzione che ti ho dato prima ...

Dovresti porre il problema INTERAMENTE sin dall'inizio ... cosi' si fa prima in meno tempo ... no?

Ovviamente, se NON esiste modo per il programma di distinguere tra le parole (dato che non sono separate da almeno uno spazio), dovrai leggere l'intera linea (spero che abbia una dimensione massima, che so, al massimo 512 caratteri ...) in un buffer ed usare la

strstr

cosi' come ti e' stato suggerito ...

PM Quote
Avatar
Overflow (Normal User)
Expert


Messaggi: 334
Iscritto: 11/01/2008

Segnala al moderatore
Postato alle 16:44
Sabato, 26/01/2008
prova questo codice che controlla se in una stringa è presente una parola:

Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <string.h>
  3. #include <windows.h>
  4.  
  5. int main()
  6. {
  7.  
  8. char txt[1024]={'0'};
  9. char psearch[1024]={'0'};
  10. char buffer[1000]={'0'};
  11. char *c;
  12. int i, len, v;
  13.         v = 0;
  14.         strcpy(psearch,"prova");//stringa da cercare all'interno di stringa di prova
  15.         strcpy(txt,"stringadiprova");
  16.         len = strlen(psearch);  
  17.         c = strstr(txt,"p");
  18.         c++;
  19.         for (i=0; i<(len-1);i++,c++)
  20.         {
  21.                 if (*c != psearch[i+1])v = 1;break; //esce dal ciclo se non trova parole uguali altrimenti continua
  22.                
  23.         }
  24.         strcpy(buffer,"la parola ");
  25.  
  26.         if (v==1) sprintf(buffer,"%s %s,%s,%s","la parola",psearch, "non è presente in ", txt); printf(buffer);
  27.         system("Pause");
  28. }


Ultima modifica effettuata da Overflow il 26/01/2008 alle 16:46
PM Quote
Avatar
Dark_Limit (Ex-Member)
Expert


Messaggi: 220
Iscritto: 15/01/2008

Segnala al moderatore
Postato alle 17:14
Sabato, 26/01/2008
Si allora il mio problema è quello di cercare una sequenza di caratteri che corrisponda ad una parola e come ai detto tu 'Gantonio' siccome non si può distinguere perchè fra di esse non ci sono spazi mi hai consigliato di leggere riga per riga il file...dovrei fare insomma tipo una ricerca in un file molto simile a quella che hanno i più comuni editor di testo attuali ( vedi notepad , word,openoffice...) si può fare leggendo il file riga per riga ma non so come isolare tale stringa da tutto il resto del testo..cioè una volta che ho letto la stringa cosa faccio? grazie mille.!!

PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo