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++ - suddivisione stringhe in sottostringhe
Forum - C/C++ - suddivisione stringhe in sottostringhe

Avatar
andreamica (Ex-Member)
Rookie


Messaggi: 24
Iscritto: 25/02/2007

Segnala al moderatore
Postato alle 18:18
Giovedì, 01/03/2007
Ciao a tutti, carico una stringa da un file e voglio dividerla in sottostringhe in modo da compararle con una parola fornita in input. Come si può fare?  :(

PM Quote
Avatar
lorelapo (Ex-Member)
Expert


Messaggi: 355
Iscritto: 28/02/2007

Segnala al moderatore
Postato alle 19:21
Giovedì, 01/03/2007
Intendi che vuoi dividere una stringa in un array di stringhe seguendo un senso logico del tipo:

char str[]="Cosa significa andreamica ?";

...diventa...

char str[][]={
"Cosa",
"significa",
"andreamica",
"?"};

perchè se è così posso farti avere un algoritmo:k:

PM Quote
Avatar
lorelapo (Ex-Member)
Expert


Messaggi: 355
Iscritto: 28/02/2007

Segnala al moderatore
Postato alle 19:22
Giovedì, 01/03/2007
comunque in termini tecnici questo si chiama parsing8-|

PM Quote
Avatar
lorelapo (Ex-Member)
Expert


Messaggi: 355
Iscritto: 28/02/2007

Segnala al moderatore
Postato alle 19:48
Giovedì, 01/03/2007
Codice sorgente - presumibilmente C++

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. int main(int argc, char **args)
  5. {
  6.     char fnm[300],wrd[300],crwrd[300];
  7.     printf("<<Nome file<<");
  8.     gets(fnm);
  9.     FILE *fl;
  10.     if((fl=fopen(fnm,"rt"))=='\0')
  11.     {
  12.         printf("\nErrore!File inesitente\n");
  13.         return -1;
  14.    
  15.     }
  16.     printf("<<Stringa da cercare<<");
  17.     gets(wrd);
  18.     int there=0,i;
  19.     while(!feof(fl))
  20.     {
  21.         for(i=0;wrd[i]!='\0';i++)
  22.         {
  23.             if(fgetc(fl)==wrd[i]);
  24.             else
  25.             break;
  26.         }
  27.         if(wrd[i]=='\0')there++;
  28.     }
  29.     if(!there)
  30.     printf("\nLa parola non \212 presente");
  31.     else
  32.     printf("\nLa parola \212 presente %d volte",there);
  33.    
  34.     return 0;
  35. }

Questo funziona.
Se ti interessava la suddivisione in sotto stringhe dillo ho già lavorato a riguardo

PM Quote
Avatar
andreamica (Ex-Member)
Rookie


Messaggi: 24
Iscritto: 25/02/2007

Segnala al moderatore
Postato alle 20:10
Giovedì, 01/03/2007
si volevo la suddivisione in sottostringhe.
Ti faccio un esempio di quello che volevo fare:
in un elenco ho scritto:

Monica Bellucci
Gianna Nannini

volevo che inserendo in input Gianna mi riconosceva con strcmp Gianna Nannini e lo stampava a schermo  :)

PM Quote
Avatar
lorelapo (Ex-Member)
Expert


Messaggi: 355
Iscritto: 28/02/2007

Segnala al moderatore
Postato alle 20:48
Giovedì, 01/03/2007
Ci lavoro fra una mezzora ti dico
:k:

PM Quote
Avatar
lorelapo (Ex-Member)
Expert


Messaggi: 355
Iscritto: 28/02/2007

Segnala al moderatore
Postato alle 16:16
Venerdì, 02/03/2007
La mezzora è ben passata però il programma c'è:D
vai su sorgenti--->C--->Gestione.zip scaricalo e per favore leggi il ReadMe.html:k:

Ultima modifica effettuata da lorelapo il 02/03/2007 alle 16:16
PM Quote