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);
}


Explication du code

  1. Lecture de l'entrée utilisateur

  2. Liste des voyelles

  3. Parcours des caractères

  4. Conditionnel

  5. Affichage du résultat

Améliorations possibles

  1. Affichage des voyelles trouvées : Ajoutez une fonctionnalité pour afficher toutes les voyelles détectées dans la phrase.

  2. Gestion des accents : Incluez les voyelles accentuées (à, é, è, etc.).

  3. Sensibilité aux langues : Permettez de choisir une langue (français/anglais) pour inclure ou exclure certaines voyelles.

  4. Mode multilingue : Ajoutez des voyelles spécifiques comme "ä", "ö", "ü" pour d'autres langues.