OCaml (option informatique) · Chapitre 6 · Exercice de TD
Compter les mots
Caractères et chaînes de caractères · niveau 3 (difficile)
Énoncé
Écrire compte_mots s, le nombre de mots (suites maximales de caractères non-espaces) de s.
Corrigé
let compte_mots s =
let n = ref 0 and dans_mot = ref false in
for i = 0 to String.length s - 1 do
if s.[i] = ' ' then dans_mot := false
else begin
if not !dans_mot then n := !n + 1; (* début d'un nouveau mot *)
dans_mot := true
end
done;
!n
On maintient un drapeau dans_mot : on compte un mot de plus chaque fois qu'on entre dans une zone de non-espaces (transition espace lettre). compte_mots " le chat dort " vaut 3. C'est un petit automate à deux états.
Exercices semblables
- Somme des chiffres d'une chaîne corrigé
- Ordre lexicographique corrigé
- Conversions corrigé
- Répéter une chaîne corrigé
- Recherche d'un motif corrigé