View Full Version : Confronto stringhe in c....like?
Ciao a tutti devo realizzare una ricerca in c per nome.
Questa ricerca pero' vorrei realizzarla del tipo che cercando ad esempio
rosso
vengano visualizzate le parole che gli assomigliano, ad esempio non so
rotto.
Ovvero vorrei che vengano pescate dalla lista contenuta ad esempio in un vettore anche le parole che gli assomigliano che magari iniziano allo stesso modo...
Un po come si fa in una query Sql con like e %%...
Si puo' fare? Esiste una funzione apposta?
Ciao.
Questa ricerca pero' vorrei realizzarla del tipo che cercando ad esempio
rosso
vengano visualizzate le parole che gli assomigliano, ad esempio non so
rotto.
Ovvero vorrei che vengano pescate dalla lista contenuta ad esempio in un vettore anche le parole che gli assomigliano che magari iniziano allo stesso modo...
Un po come si fa in una query Sql con like e %%...
Si puo' fare? Esiste una funzione apposta?Beh, dovresti essere un po' più preciso. Una cosa è comparare solo i primi N caratteri (è facile, usi strncmp invece di strcmp).
Un'altra cosa è poter usare dei caratteri "wildcard" come ad esempio in ro??o oppure r*o. E un'altra cosa ancora è usare algoritmi più complessi come il noto Soundex (http://en.wikipedia.org/wiki/Soundex).
Facendola semplice se volessi confrontare i primi tre caratteri?
Come la uso la strncmp?
Ciao.
Facendola semplice se volessi confrontare i primi tre caratteri?
Come la uso la strncmp?Esempio:
char *s1 = "pineta";
char *s2 = "pinna";
int r;
r = strncmp (s1, s2, 3);
Ho visto che strncmp è case sensitive....
Ne esiste una variante non case sensitive?
Grazie.
Ne esiste una variante non case sensitive?A livello di funzioni standard ANSI C, no non ci sono funzioni per fare la comparazione di stringhe in modo case insensitive ed eventualmente al max di n caratteri.
Ci possono però essere delle funzioni specifiche di un certo compilatore/ambiente. Dimmi il tuo compilatore e vediamo.
Io uso dev c++ però se può essere semplice potrebbe bastarmi una funzione che converte tutte le stringhe in maiuscolo...cosi' mi levo il problema inserendo tutto in maiuscolo...
Ciao e grazie di nuovo.
Io uso dev c++Prova ad usare: strnicmp
Grazie!
Sei un genio!
Ciao.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.