Avatar ·

Comment itérer sur les caractères d'une chaîne en Rust ? Parcourir les caractères par index

Bonjour à tous ! Je viens de commencer à apprendre Rust et j'ai rencontré un problème en travaillant avec les chaînes. Je dois parcourir chaque caractère d'une chaîne et effectuer une action dessus. Dans d'autres langages (par exemple, Python ou C++), j'ai l'habitude d'utiliser des indices : `string[i]` dans une boucle for. Mais en Rust, cela ne fonctionne pas. Voici mon code qui ne compile pas : ```rust fn main() { let text = String::from("Привет, мир!"); for i in 0..text.len() { println!("Символ: {}", text[i]); // Erreur ! } } ``` Le compilateur donne une erreur : `cannot index into a string of type String`. Je comprends que les chaînes en Rust ne sont pas simplement des tableaux de caractères, mais des séquences d'octets en UTF-8. Mais comment parcourir correctement tous les caractères ? J'ai besoin d'une solution qui fonctionne correctement avec Unicode, y compris les caractères multi-octets (par exemple, le cyrillique, les emojis). Il serait également utile de savoir comment obtenir non seulement le caractère, mais aussi sa position (indice) dans la chaîne. Dites-moi comment faire cela correctement et efficacement ?