PDA

Visualizza la versione completa : [C]Numero di volte che si ripete una parola in un dato testo


simone_90
07-10-2008, 17:17
salve io ho un testo:

"Il G1, realizzato per Google da HTC e venduto da T-Mobile di Deutsche Telekom AG,
al momento assembla un apparecchio pi vecchio, il Sidekick, a forma di saponetta creato
dal designer di G1 Andy Rubin, padre del sistema operativo per telefonini di Google, Android.
Ha controlli sullo schermo a tocco ed una tastiera da minicomputer che compare facendo scorrere
lo schermo."

e devo inserire una parola e lui mi dice quante volta l'ha trovata
la mia idea era


#include <stdio.h>
#include <conio.h>

int main()
{
char sTesto[] ="Testo nel quale cercare";
char sParola[] ="Parola";
int iOccorrenze = 0; // Quante volte stata trovata

/*
...
...
*/

printf("La parola %s e' presente %d volte\n", sParola, iOccorrenze);
getch();
return 0;

pallinopinco
07-10-2008, 17:21
Hai inserito lo "scheletro", ma non presente l'idea... :stordita:

simone_90
07-10-2008, 17:26
Originariamente inviato da pallinopinco
Hai inserito lo "scheletro", ma non presente l'idea... :stordita:
azz vero e ma se sapevo come farla mica chiedevo
:D

mico90
07-10-2008, 17:52
Ciao,
potresti utilizzare un algoritmo di ricerca binaria ( utilizzando strutture ricorsive );
ti consiglio di fare una ricerca su google.


:ciauz:

pallinopinco
07-10-2008, 18:13
azz vero e ma se sapevo come farla mica chiedevo


Ma su questo forum non si possono chiedere soluzioni chiavi in mano... :D Devi farlo in C o in C++?

mico90
07-10-2008, 18:14
Ciao,
Ripensandoci la ricorsione di un albero binario potrebbe essere troppo dispendiosa in termini di risorse per quella applicazione, ti ho scritto questo trancio di codice :


#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
char *Testo = "sono un testo ! bla bli blu 01010101 bli blu bla :P bli";
char *Parola = "bli";
char *p_Parola;
char *p_Testo = Testo;
int NParole = 0;
while ( (p_Parola = strstr(p_Testo, Parola)) != NULL )
{
++NParole;
p_Testo = p_Parola + strlen(Parola);
}
printf("Numero parole trovate : %d\n", NParole);
system("PAUSE");
return 0;
}


Ricorda comunque che il forum e' un posto dove chiedere pareri, opinioni e suggerimenti, non programmi gia fatti :nonono:


ciaociao;

oregon
07-10-2008, 19:26
Originariamente inviato da simone_90
azz vero e ma se sapevo come farla mica chiedevo
:D

Ok ... in questo caso, quindi, dicci che non hai un'idea e che non sai da dove partire ...

simone_90
07-10-2008, 20:12
Originariamente inviato da mico90
Ciao,
Ripensandoci la ricorsione di un albero binario potrebbe essere troppo dispendiosa in termini di risorse per quella applicazione, ti ho scritto questo trancio di codice :


#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
char *Testo = "sono un testo ! bla bli blu 01010101 bli blu bla :P bli";
char *Parola = "bli";
char *p_Parola;
char *p_Testo = Testo;
int NParole = 0;
while ( (p_Parola = strstr(p_Testo, Parola)) != NULL )
{
++NParole;
p_Testo = p_Parola + strlen(Parola);
}
printf("Numero parole trovate : %d\n", NParole);
system("PAUSE");
return 0;
}


Ricorda comunque che il forum e' un posto dove chiedere pareri, opinioni e suggerimenti, non programmi gia fatti :nonono:


ciaociao;
vero grazie mille

mico90
07-10-2008, 22:07
Originariamente inviato da simone_90
vero grazie mille

di nulla !


:ciauz:

Loading