|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Jun 2010
Messaggi: 2
|
PROGRAMMAZIONE IN C
ciao a tutti, avrei bisogno di un programma che:
dato un file di testo contenente delle parole (anche insensate) separate da spazi, ricerchi all'interno di esso il NUMERO DI PAROLE (contatore), che: inizino con 'ca', finiscano con 'ru' ma che non contengano NESSUNA lettera 'k' sono quindi 3 controlli da implementare.... successivamente modifichero il programma con ricerche specifiche inserite dall'utente: esempio: con quale due lettere vuoi ricercare? con quale due lettere vuoi che finisca la parola? quale lettera non vuoi che sia presente. successivamente ancora, modificherò il programma per adattarlo ad una lista di IP. fatemi sapere se riuscite ad assermi di aiuto. mi è chiaro che bisogna scorrere tutte le parole del testo ed effettuare i 3 controlli, aumentare il contatore solo una volta che i 3 controlli siano soddisfatti. per adesso posso solo ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Oct 2004
Messaggi: 903
|
io posso darti una mano ma con c++ che ha la classe string
con c devi lavorare con array di char ed è piu complicato
__________________
MB:Asus Rog Strix B450-F Gaming - Cpu:AMD Ryzen 5 2600 - RAM:2x8Gb DualCh DDR4-2400MHz Patriot Viper Elite - SkGrafica:msi GeForce GTX 1050Ti 4GB - SSD: 2 x Samsung 970 EVO 1TB nvme M.2 in RAID0 Alim: EVGA B3 750W Case: Corsair airflow 750D |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Aug 2008
Messaggi: 382
|
Codice:
bool myTest( Parola p ){ return (p inizia per "ca"?) and ...; } int myFunction( ListaDiParole wl ){ if ( wl è vuota? ){ return 0; } else { return myTest( elementoInTesta(wl) ) + myFunction( codaDellaLista(wl) ); } } main(){ wordList = creaListaDiParole( inputString ); return myFunction( wordList ); } ![]() Ultima modifica di il-pollo : 10-06-2010 alle 18:44. |
![]() |
![]() |
![]() |
#4 |
Junior Member
Iscritto dal: Jun 2010
Messaggi: 2
|
purtroppo devo usare c e non c++.
Scusate la mia ignoranza, non mi sembra difficilissimo eppure non ci arrivo....... -------------------------------------------------------------- ad esempio con questo programma riesco a ricercare quante volte è contenuta la parola "the", dentro un file di testo ------------------------ #include <stdio.h> #include <string.h> #define NOME_FILE "frank.txt" int main() { FILE * file_in; char stringa[128]; int nthe = 0; file_in = fopen(NOME_FILE, "r"); if(file_in == NULL) { printf( "Non trovo il file.\n" ); getchar(); } // accedo al file frank.txt e trovo quante volte compare la parola "the" while ( fscanf( file_in , "%s", stringa ) == 1) { if (!strcmp(stringa, "the")) nthe++; } fflush(file_in); fclose(file_in); getchar(); return 0; } ------------------------------------------------ in quello che devo fare devo solo implemetare 3 controlli in piu: 1 - che la parola inizi con ca 2 - che la parola finisca con ru 3 - non contenga nessuna k -------------------------------- esempio, se mil mio file è composto dalle parole: caferu cakeru fakeru cakeca il contatore mi deve restituire 1, perchè solo la parola caferu soddisfa tutte e tre le condizioni. grazie.... ![]() |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Oct 2004
Messaggi: 1945
|
Posso darti uno spunto...
parola Codice:
bruciaggine Codice:
char parola[] = "bruciaggine"; char first[] = "bru"; char last[] = "ine"; int first_length = strlen(first); int last_legnth = strlen(last); if(strncmp(parola, first, first_len) != 0) return 0; int parola_len = strlen(parola); int index = parola_len - last_len; int y = 0; for(index; index < parola_len; index++) if(parola[index] != last[y++]) return 0; index = 0; for(index; index < parola_len; index++) if(parola[index] == 'k') return 0; return 1; P.S. Tra l'altro devo anche ringraziarti perchè avevo veramente dimenticato la funzione fscanf che proprio in questo momento mi fa proprio comodo :-) Ultima modifica di clockover : 11-06-2010 alle 00:58. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:17.