Avatar ·

Comment itérer sur une chaîne de caractères caractère par caractère (par symboles Unicode) en Rust ?

Bonjour à tous ! Je viens de commencer à apprendre Rust et j'ai un problème avec l'itération sur une chaîne. Dans d'autres langages (comme Python ou C++), j'ai l'habitude qu'une chaîne soit un tableau de caractères et je peux simplement parcourir par index ou utiliser une boucle for. Mais en Rust, c'est plus compliqué. Voici ce que j'ai essayé : ```rust let s = "Привет, мир!"; for c in s { println!("{}", c); } ``` Le compilateur donne une erreur : `error[E0277]: the trait bound \`str: Iterator\` is not satisfied`. Je comprends que `str` n'est pas un itérateur, mais comment obtenir chaque caractère ? J'ai aussi essayé d'accéder par index : ```rust let s = "Привет"; println!("{}", s[0]); // Erreur ! ``` Et encore une erreur : les chaînes en Rust ne peuvent pas être indexées directement car les caractères Unicode peuvent occuper un nombre différent d'octets. Finalement, j'ai besoin de : prendre une chaîne, parcourir chaque caractère (y compris le cyrillique, les emojis et les caractères spéciaux) et faire quelque chose avec chacun. Par exemple, compter le nombre de caractères ou remplacer toutes les voyelles par '*'.