Tanto per mostrare ecco una funzione che misura la lunghezza e confronta due stringhe:
codice:
int compare(const char *s1, const char *s2)
{
//due interi
int len1,len2;
//due puntatori
char *p1 = s1, *p2 = s2;
//Traduzione:
//Finchè in carattere puntato da p1 è un valore vero (*p1)
//cioè non è '\0', il carattere che termina la stringa
//incrementa l'indirizzo a cui punta p1 (p1++) , in modo da puntare
//al carattere successivo
//ed incrementa la lunghezza di un carattere
//
//NOTA:
//Per accorciare e far diventare + illeggibile,
//ho combinato *p1 con p1++ formando *p1++
while(*p1++) len1++;
//Idem per p2
while(*p2++) len2++;
//ok ora ho trovato la lunghezza :sexpulp:
//reinizializzo i puntatori
p1 = s1; p2 = s2;
//Finchè non termina almeno una stringa (operatore AND)
while (*p1++ && *p2++)
{
if(*p1 < *p2) {
//la stringa 1 è la minore
return -1;
}
else if(*p1 > *p2) {
return 1;
}
}
if (len1 < len2) {
//Se la stringa 1 è più corta, allora è minore
return -1;
}
else if(len1 > len2){
return 1;
}
else {
//sono incredibilmente UGUALI!!!
return 0;
}
}