Salvez a todos ^^ mi avrete addosso per un bel po dato che sto facendo 'sperimenti ^^
allora...io ho questa funzione
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;
}
che deve confrontarmi due dati (lasciate perdere il terzo parametro)
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?