Wie man in Rust Zeichen für Zeichen (nach Unicode-Zeichen) über einen String iteriert
Hallo zusammen! Ich habe gerade angefangen, Rust zu lernen, und habe ein Problem mit der Iteration über einen String. In anderen Sprachen (z.B. Python oder C++) bin ich es gewohnt, dass ein String ein Array von Zeichen ist und ich einfach über einen Index oder eine for-Schleife iterieren kann.
Aber in Rust ist es komplizierter. Folgendes habe ich versucht:
```rust
let s = "Привет, мир!";
for c in s {
println!("{}", c);
}
```
Der Compiler gibt einen Fehler aus: `error[E0277]: the trait bound \`str: Iterator\` is not satisfied`. Ich verstehe, dass `str` kein Iterator ist, aber wie bekomme ich dann jedes Zeichen?
Ich habe auch versucht, über den Index zuzugreifen:
```rust
let s = "Привет";
println!("{}", s[0]); // Fehler!
```
Und wieder ein Fehler: Strings in Rust können nicht direkt indiziert werden, weil Unicode-Zeichen unterschiedlich viele Bytes belegen können.
Letztendlich brauche ich: einen String nehmen, über jedes Zeichen iterieren (einschließlich Kyrillisch, Emojis und Sonderzeichen) und etwas mit jedem tun. Zum Beispiel die Anzahl der Zeichen zählen oder alle Vokale durch '*' ersetzen.