Τι μπορεί να πάει στραβά με αυτήν τη συνάρτηση;
int atoi(char digits[]) {
int result = 0;
for (int i = 0; digits[i]; i++) {
result = 10 * result + digits[i] - '0';
}
return result;
}
Δοκιμάστε νοερά εισόδους που παραβιάζουν τις υποθέσεις της: χαρακτήρες που δεν είναι
ψηφία (π.χ. πρόσημο), έναν πολύ μεγάλο αριθμό, έναν πίνακα χωρίς '\0' στο τέλος.
Σκεφτείτε επίσης αν το όνομα της συνάρτησης συγκρούεται με κάτι από την standard
library.
Αριθμός στον οδηγό: Α11.12
(στο κεφάλαιο) ·
Μόνιμο αναγνωριστικό: slides-lec11-atoi-pitfalls ·
Σύνδεσμος: https://progintro.github.io/study/questions/slides/slides-lec11-atoi-pitfalls.html ·
Markdown (GitHub)