Beh... io ho sviluppato questa funzione:
Questa funzione restituisce 0 se la stringa passata NON rappresenta un intero.codice:int intero(char *x, int pos) { int result = 0; if (x[pos]) { result = (x[pos] >= '0' && x[pos] <= '9' && intero(x, pos+1)); } else { result = -1; } return result; }
Va utilizzata nel modo seguente:
Nella funzione non è implementato il controllo del primo carattere per il segno (quindi non funzionerebbe se gli si passa, per esempio, "-12"), perciò questo va fatto a parte, ma è banale.codice:char *miaStringa; /* Controllo se il primo carattere è il segno */ if (miaStringa[0] == '-' || miaStringa[0] == '+') { if (intero(miaStringa, 1)) { printf("E' un intero!!\n"); } else { printf("NON è un intero!!"); } } else { if (intero(miaStringa, 0)) { printf("E' un intero!!\n"); } else { printf("Non è un intero!!\n"); } }
Ciao.![]()



Rispondi quotando