|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Dec 2001
Città: Partinico(PA)-Torino
Messaggi: 2885
|
Ricerca in c...
Dunque dovrei implementare una procedura in C ke mi consenta di ricercare una parola all'interno di un testo,utilizzando degli array di caratteri...e ritorni il numero di volte ke la parole si trova nel testo...
int ricerca(char parola[10],char testo[50]) avevo pensato a due cicli for annidati x scandire i due array...ma come effettuare il controllo e incrementare il contatore di quante volte è presente una parola? Suggerimenti?
__________________
Main: Barton 2500@3200+ Asus A7N8X-dlx 2*512 DDRPowercolor 9800Pro Maxtor 80GB sATA + Seagate 160GB pATA LCD Acer AL1721 Epson C62 Antec T.P. 430w Tin.it ADSL Muletto: Pentium4 1800 Notebook: Idea Progress P4 Auto e moto d'epoca
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Se ridefinisci i parametri come puntatori char * (formalmente non ti dovrebbe cambiare nulla al resto del programma) te la cavi così:
Codice:
int ricerca(char *parola, char *testo) {
char *pos;
int ret = 0;
int size = strlen(parola);
if(size<1) return -1;
pos = strstr(testo, parola);
while(pos) {
testo = pos+size;
++ret;
pos = strstr(testo, parola);
}
return ret;
}
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Dec 2001
Città: Partinico(PA)-Torino
Messaggi: 2885
|
ehm il fatto è ke dovrei farlo con gli array...
__________________
Main: Barton 2500@3200+ Asus A7N8X-dlx 2*512 DDRPowercolor 9800Pro Maxtor 80GB sATA + Seagate 160GB pATA LCD Acer AL1721 Epson C62 Antec T.P. 430w Tin.it ADSL Muletto: Pentium4 1800 Notebook: Idea Progress P4 Auto e moto d'epoca
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Codice:
int cerca(const char *testo, const char *parola)
{
int ret = 0, i = 0, j = 0;
if(parola[0] == '\0')
return 0;
do {
if(parola[j++] != testo[i])
{
j = (parola[0] == testo[i]) ? 1:0;
}
if(parola[j] == '\0')
{
++ret;
j = 0;
}
} while(testo[i++] != '\0');
return ret;
}
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Codice:
int ricerca(char parola[10], char testo[50]) {
int ofs = 0;
int ret = 0;
int size = strlen(parola);
if(size<1) return -1;
while(strstr(testo+ofs, parola)) {
ofs += size;
++ret;
}
return ret;
}
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Errata corrige:
Codice:
int ricerca(char parola[10], char testo[50]) {
int ret = 0;
char *pos;
int size = strlen(parola);
if(size<1) return -1;
pos = strstr(testo, parola)
while(pos) {
++ret;
pos = strstr(pos+size, parola)
}
return ret;
}
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Dec 2001
Città: Partinico(PA)-Torino
Messaggi: 2885
|
Grazie...come dovrei fare senza voi
__________________
Main: Barton 2500@3200+ Asus A7N8X-dlx 2*512 DDRPowercolor 9800Pro Maxtor 80GB sATA + Seagate 160GB pATA LCD Acer AL1721 Epson C62 Antec T.P. 430w Tin.it ADSL Muletto: Pentium4 1800 Notebook: Idea Progress P4 Auto e moto d'epoca
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Eh, ti toccherebbe studiare
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:19.










Main: Barton 2500@3200+ Asus A7N8X-dlx 2*512 DDRPowercolor 9800Pro Maxtor 80GB sATA + Seagate 160GB pATA LCD Acer AL1721 Epson C62 Antec T.P. 430w Tin.it ADSL Muletto: Pentium4 1800 Notebook: Idea Progress P4 








