Menu
Coddy logo textTech

Créer des slices de chaînes

Fait partie de la section Logic & Flow du Journey Rust de Coddy — leçon 55 sur 66.

Maintenant que vous comprenez la différence entre String et &str, apprenons comment créer des tranches de chaîne (string slices) à partir de chaînes existantes. Il existe deux manières principales de créer un &str à partir d'un String.

La manière la plus simple est d'utiliser l'opérateur de référence & avec votre String. Cela crée une tranche (slice) qui référence la chaîne entière :

let my_string = String::from("Hello World");
let slice: &str = &my_string; // Cela crée une tranche de la chaîne entière

Vous pouvez également créer des tranches (slices) de parties spécifiques d'une chaîne de caractères en utilisant la syntaxe de plage. Le format est &string[start..end], où start est l'indice de début et end est l'indice suivant le dernier caractère que vous souhaitez inclure :

let my_string = String::from("Hello World");
let first_word = &my_string[0..5]; // Cela nous donne "Hello"
let second_word = &my_string[6..11]; // Cela nous donne "World"

Les indices utilisés dans la syntaxe de plage sont de type usize, qui est le type d'entier non signé de Rust pour représenter les tailles et les indices. C'est le type standard utilisé chaque fois que vous avez besoin d'indexer une collection ou de spécifier une longueur. Lors de l'analyse des valeurs d'index à partir d'une entrée, vous utiliserez .parse::<usize>() pour les convertir vers le type correct.

challenge icon

Défi

Facile

Vous recevrez deux entrées. La première entrée est une phrase complète, et la deuxième entrée est constituée de deux nombres séparés par un espace représentant les indices de début et de fin pour créer une tranche (slice). Créez une String à partir de la première entrée, puis créez une tranche de chaîne en utilisant la plage spécifiée par les deux indices. Affichez la chaîne originale sur la première ligne et la tranche extraite sur la deuxième ligne.

Exigences :

  • Lisez la première entrée (la phrase complète) et supprimez les espaces blancs (trim)
  • Créez une String à partir de cette entrée
  • Lisez la deuxième entrée (deux nombres séparés par un espace) et supprimez les espaces blancs
  • Divisez la deuxième entrée par l'espace pour obtenir les indices de début et de fin
  • Analysez (parse) les deux indices en usize
  • Créez une tranche de chaîne en utilisant la syntaxe de plage &string[start..end]
  • Affichez la chaîne originale
  • Affichez la tranche extraite

Entrée :

  • Première ligne : Une phrase (par exemple, Hello World)
  • Deuxième ligne : Deux nombres séparés par un espace (par exemple, 0 5)

Sortie :

  • Première ligne : La chaîne originale
  • Deuxième ligne : La tranche extraite

Essayez vous-même

use std::io;

fn main() {
    // Lire la première entrée (la phrase complète)
    let mut sentence = String::new();
    io::stdin().read_line(&mut sentence).expect("Failed to read line");
    let sentence = sentence.trim();
    
    // Lire la deuxième entrée (deux nombres séparés par un espace)
    let mut indices = String::new();
    io::stdin().read_line(&mut indices).expect("Failed to read line");
    let indices = indices.trim();
    
    // TODO: Écrivez votre code ci-dessous
    // Analyser les indices et créer la tranche de chaîne (string slice)
    
    
    // Afficher la chaîne originale et la tranche
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logic & Flow