Menu
Coddy logo textTech

Creare slice di stringhe

Fa parte della sezione Logica e flusso del percorso Rust di Coddy. Lezione 55 di 66.

Ora che hai capito la differenza tra String e &str, impariamo a creare sezioni di stringa da stringhe esistenti. Ci sono due modi principali per creare un &str da una String.

Il modo più semplice è usare l’operatore di riferimento & con la tua String. Questo crea una slice che fa riferimento all’intera stringa:

let my_string = String::from("Hello World");
let slice: &str = &my_string; // Questo crea una slice dell'intera stringa

Puoi anche creare slice di parti specifiche di una stringa usando la sintassi degli intervalli. Il formato è &string[start..end], dove start è l'indice iniziale e end è l'indice successivo all'ultimo carattere che vuoi includere:

let my_string = String::from("Hello World");
let first_word = &my_string[0..5]; // Questo ci dà "Hello"
let second_word = &my_string[6..11]; // Questo ci dà "World"

Gli indici usati nella sintassi degli intervalli sono di tipo usize, il tipo intero senza segno di Rust usato per rappresentare dimensioni e indici. È il tipo standard da usare quando devi accedere agli elementi di una raccolta tramite indice o specificarne la lunghezza. Quando analizzi i valori degli indici dall’input, userai .parse::<usize>() per convertirli nel tipo corretto.

challenge icon

Sfida

Facile

Riceverai due input. Il primo input è una frase completa e il secondo input è composto da due numeri separati da uno spazio, che rappresentano gli indici iniziale e finale per creare una fetta. Crea una String a partire dal primo input, quindi crea una fetta di stringa usando l’intervallo specificato dai due indici. Stampa la stringa originale sulla prima riga e la fetta estratta sulla seconda riga.

Requisiti:

  • Leggi il primo input (la frase completa) e rimuovi gli spazi bianchi
  • Crea una String a partire da questo input
  • Leggi il secondo input (due numeri separati da uno spazio) e rimuovi gli spazi bianchi
  • Dividi il secondo input in corrispondenza dello spazio per ottenere gli indici iniziale e finale
  • Analizza entrambi gli indici come usize
  • Crea una fetta di stringa usando la sintassi dell’intervallo &string[start..end]
  • Stampa la stringa originale
  • Stampa la fetta estratta

Input:

  • Prima riga: una frase (ad es., Hello World)
  • Seconda riga: due numeri separati da uno spazio (ad es., 0 5)

Output:

  • Prima riga: la stringa originale
  • Seconda riga: la fetta estratta

Provalo tu

use std::io;

fn main() {
    // Leggi il primo input (la frase completa)
    let mut sentence = String::new();
    io::stdin().read_line(&mut sentence).expect("Failed to read line");
    let sentence = sentence.trim();
    
    // Leggi il secondo input (due numeri separati da uno spazio)
    let mut indices = String::new();
    io::stdin().read_line(&mut indices).expect("Failed to read line");
    let indices = indices.trim();
    
    // TODO: Scrivi il tuo codice qui sotto
    // Analizza gli indici e crea la porzione di stringa
    
    
    // Stampa la stringa originale e la porzione
}
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Compilatore Rust online