Adloun

Somme des chiffres d'une chaîne

Exercice · OCaml (option informatique), chapitre 6 — Caractères et chaînes de caractères

Énoncé

Écrire somme_chiffres s, somme des chiffres d'une chaîne ne contenant que des chiffres (ex. "1234" 10).

Corrigé

let somme_chiffres s =
  let total = ref 0 in
  for i = 0 to String.length s - 1 do
    total := !total + (int_of_char s.[i] - int_of_char '0')
  done;
  !total

Chaque caractère est converti en sa valeur numérique par l'écart de codes, puis ajouté. La précondition (« que des chiffres ») garantit que l'écart est bien dans 0...9.

Les autres exercices de ce chapitre Le cours du chapitre

Un blocage sur cet exercice ? Le tuteur d'Adloun guide par questions, sans donner la réponse.