Voici la correction version texte de l'exercice:
use std::io;
fn main() {
println!("Entrez une phrase :");
// Lire l'entrée utilisateur
let mut input = String::new();
io::stdin()
.read_line(&mut input)
.expect("Erreur lors de la lecture de la phrase.");
// Supprimer les espaces inutiles
let input = input.trim();
// Vérifier que la saisie n'est pas vide
if input.is_empty() {
println!("La phrase ne peut pas être vide.");
return;
}
// Compter les voyelles
let voyelles = ['a', 'e', 'i', 'o', 'u', 'y'];
let mut compteur = 0;
for c in input.chars() {
if voyelles.contains(&c.to_ascii_lowercase()) {
compteur += 1;
}
}
// Afficher le résultat
println!("La phrase contient {} voyelles.", compteur);
}Lecture de l'entrée utilisateur
La fonction io::stdin().read_line(&mut input) lit la ligne saisie par l'utilisateur et la stocke dans une variable mutable input.
trim() est utilisé pour supprimer les espaces ou sauts de ligne en début/fin de la chaîne.
Liste des voyelles
Les voyelles sont définies dans une liste de caractères : ['a', 'e', 'i', 'o', 'u', 'y'].
Parcours des caractères
La méthode chars() permet d'itérer sur chaque caractère de la chaîne.
La méthode to_ascii_lowercase() permet de convertir le caractère en minuscule pour simplifier les comparaisons.
Conditionnel
contains(&c) vérifie si le caractère actuel est une voyelle.
Affichage du résultat
Le nombre total de voyelles est affiché à l'utilisateur.
Affichage des voyelles trouvées : Ajoutez une fonctionnalité pour afficher toutes les voyelles détectées dans la phrase.
Gestion des accents : Incluez les voyelles accentuées (à, é, è, etc.).
Sensibilité aux langues : Permettez de choisir une langue (français/anglais) pour inclure ou exclure certaines voyelles.
Mode multilingue : Ajoutez des voyelles spécifiques comme "ä", "ö", "ü" pour d'autres langues.