[C++]Programma per il controllo di una stringa
Salve a tutti, devo fare un programma che inizialmente legge un dizionario da file, poi permette all'utente di inserire una parola e verifica se questa parola è scritta correttamente... se la parola non è scritta bene il programma dovrebbe cercare nel dizionario una parola che potrebbe essere qualla che l'utente voleva inserire.
Non devo implementare algoritmi complicati, ma al massimo due algoritmi di controllo:
uno ad esempio che scambia tutte le lettere adiacenti e controlla tra tutte le possibili combinazioni se ne esiste una corretta (es. voglio inserire "casa", ma sbaglio e scrivo "acsa", allora il programma controlla "casa", "csaa" e "caas" e stampa "Forse ceravi: casa")
l'altro algoritmo ad esempio che controlla le doppie all'interno della parola inserita (es. scrivo "orologgio" e il programma stampa "Forse cercavi: orologio")
Ho già implementato una funzione di lettura da file per il dizionario e una funzione booleana per il controllo della parola.
Quacuno potrebbe aiutarmi sull'implementazione di questi due algoritmi? Grazie mille.
Non devo implementare algoritmi complicati, ma al massimo due algoritmi di controllo:
uno ad esempio che scambia tutte le lettere adiacenti e controlla tra tutte le possibili combinazioni se ne esiste una corretta (es. voglio inserire "casa", ma sbaglio e scrivo "acsa", allora il programma controlla "casa", "csaa" e "caas" e stampa "Forse ceravi: casa")
l'altro algoritmo ad esempio che controlla le doppie all'interno della parola inserita (es. scrivo "orologgio" e il programma stampa "Forse cercavi: orologio")
Ho già implementato una funzione di lettura da file per il dizionario e una funzione booleana per il controllo della parola.
Quacuno potrebbe aiutarmi sull'implementazione di questi due algoritmi? Grazie mille.
Risposte
In pratica consideri corretta la parola se è nel dizionario e basta, giusto?
Il primo controllo che vuoi fare non mi sembra difficile da implementare, addirittura potresti prevedere di aggiungere le parole "sbagliate" al dizionario. Ti basta un ciclo sulla stringa del dizionario, con numero di passi uguale alla lunghezza della parola meno uno, che scambia due lettere da posizione 0 in poi (0 e 1, 1 e 2, eccetera) e confronta le stringhe.
Anche il secondo mi sembra molto facile da fare... non hai proprio nessuna idea?
Forse intendevi "cercavi"
Il primo controllo che vuoi fare non mi sembra difficile da implementare, addirittura potresti prevedere di aggiungere le parole "sbagliate" al dizionario. Ti basta un ciclo sulla stringa del dizionario, con numero di passi uguale alla lunghezza della parola meno uno, che scambia due lettere da posizione 0 in poi (0 e 1, 1 e 2, eccetera) e confronta le stringhe.
Anche il secondo mi sembra molto facile da fare... non hai proprio nessuna idea?
il programma controlla "casa", "csaa" e "caas" e stampa "Forse ceravi: casa"
Forse intendevi "cercavi"
