Οδηγός Μελέτης - Εισαγωγή στον Προγραμματισμό

Α16.9 · Η atoi και τι μπορεί να πάει στραβά

Διάλεξη 16, διαφάνειες 16–17 · Δυσκολία ★★☆ · programming · Κεφάλαια: 16, 11

Θέλω μια συνάρτηση atoi που να παίρνει ένα πίνακα χαρακτήρων (μόνο ψηφία) και να επιστρέφει έναν ακέραιο. Πώς;

Η λύση των διαφανειών είναι η εξής. Τι μπορεί να πάει στραβά με αυτήν τη συνάρτηση;

int atoi(char digits[]) {
  int result = 0;
  for(int i = 0; digits[i]; i++) {
    result = 10 * result + digits[i] - '0';
  }
  return result;
}

Υπόδειξη

Γράψτε τις υποθέσεις που κάνει η συνάρτηση για την είσοδό της και δοκιμάστε νοερά εισόδους που τις παραβιάζουν: πρόσημο ή γράμματα, έναν πολύ μεγάλο αριθμό, έναν πίνακα χωρίς '\0'. Σκεφτείτε και το όνομά της.

Αριθμός στον οδηγό: Α16.9 (στο κεφάλαιο) · Μόνιμο αναγνωριστικό: slides-lec16-atoi · Σύνδεσμος: https://progintro.github.io/study/questions/slides/slides-lec16-atoi.html · Markdown (GitHub)