Salvez a todos ^^ mi avrete addosso per un bel po dato che sto facendo 'sperimenti ^^
allora...io ho questa funzione
che deve confrontarmi due dati (lasciate perdere il terzo parametro)codice:int compare(const void *pa, const void *pb, const void *config) { int size1, size2, i; size1 = sizeof((char *)pa); size2 = sizeof((char *)pb); printf("Sizes: [%s]%i - [%s]%i\n", (char *)pa, size1, (char *)pb, size2); if (size1>size2) return 1; if (size2>size1) return -1; for (i=0; i<size1;i++) { if ((char *)pa == 0) break; printf("Content[%i]: %c - %c\n", i, (char *)pa, (char *)pb); if ((char *)pa > (char *)pb) return 1; if ((char *)pb > (char *)pa) return -1; pa++; pb++; } return 0; }
i due dati in questione sono i puntatori a due stringhe
anche xche non capisco xche usando sizeof mi restituisca 4 (la dimensione di un INT) mentre usando printf mi stampi la stringa :\
infati size1 e size2 sono uguali
se le due stringhe sono di lunghezza uguale confronto carattere per carattere...e se ne trovo 1 + grande ritorno 1 o -1
se nn trovo nulla...mi ritorna zero
ora il problema è questo
1° mi serve leggere la lunghezza della stringa (how?)
2° mi serve confrontare carattere per carattere per vedere quallo + alto o + basso
il codice è "mezzo" funziante...
idee?![]()

Rispondi quotando
