PDA

View Full Version : [C] Ordine alfabetico


klarence
02-06-2008, 17:21
Ho una lista di elementi che hanno al loro interno il campo char *stringa e questa lista è ordinata in base all'ordine alfabetico di queste stringhe. Ho bisogno di inserire un nuovo elemento nella lista, ma non so come confrontare la stringa del nuovo elemento con le stringhe degli elementi di questa lista, poichè il criterio è l'ordine alfabetico.
Come posso fare?

71104
02-06-2008, 18:00
strcmp

klarence
02-06-2008, 18:24
strcmp

Ok grazie.

klarence
02-06-2008, 18:28
Però ho ancora un dubbio: sul libro c'è scritto che quella funzione restituisce 0 se le stringhe sono identiche, -1 se la prima stringa è minore della seconda, 1 se la prima stringa è maggiore della seconda...
Ma cosa intende esattamente per ''maggiore'' e ''minore''???

71104
02-06-2008, 21:21
maggiore o minore in ordine lessicografico; in altre parole che viene prima o dopo in ordine alfabetico.
fai conto che le stringhe confrontate sono due grossi numeri: il numero maggiore è la stringa che in ordine alfabetico viene dopo, quello minore quello che viene prima.

DanieleC88
02-06-2008, 22:08
Se non hai bisogno di distinguere maiuscole/minuscole, stricmp() può essere d'aiuto. ;)

71104
02-06-2008, 22:28
Se non hai bisogno di distinguere maiuscole/minuscole, stricmp() può essere d'aiuto. ;) stricmp e strcmpi sono funzioni "strane": credo siano state introdotte in tempi relativamente recenti perché su alcuni siti vedo che nessuna delle due è POSIX-compliant, anche se strcmpi rientra nello standard del C++ (!! e non del C :confused: ). forse sarebbe meglio usare strcasecmp.

DanieleC88
02-06-2008, 23:01
forse sarebbe meglio usare strcasecmp.
Oddio LOL, era quella che intendevo io! :D
Scusate, avevo sbagliato nome. ;)