Adloun

OCaml (option informatique) · Chapitre 6 · Exercice de TD

Somme des chiffres d'une chaîne

Caractères et chaînes de caractères · niveau 2

É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.

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre