Cómo iterar sobre una cadena carácter por carácter (por caracteres Unicode) en Rust
¡Hola a todos! Acabo de empezar a aprender Rust y tengo un problema con la iteración sobre una cadena. En otros lenguajes (como Python o C++) estoy acostumbrado a que una cadena es un array de caracteres y puedo simplemente recorrerla por índice o usar un bucle for.
Pero en Rust es más complicado. Esto es lo que he probado:
```rust
let s = "Привет, мир!";
for c in s {
println!("{}", c);
}
```
El compilador da un error: `error[E0277]: the trait bound \`str: Iterator\` is not satisfied`. Entiendo que `str` no es un iterador, pero ¿cómo obtengo entonces cada carácter?
También he probado a acceder por índice:
```rust
let s = "Привет";
println!("{}", s[0]); // ¡Error!
```
Y de nuevo un error: las cadenas en Rust no se pueden indexar directamente porque los caracteres Unicode pueden ocupar diferente cantidad de bytes.
En resumen, necesito: tomar una cadena, recorrer cada carácter (incluyendo cirílico, emojis y caracteres especiales) y hacer algo con cada uno. Por ejemplo, contar el número de caracteres o reemplazar todas las vocales por '*'.
No answers yet.
Inicia sesión para dejar una respuesta
Blogs