Menu
CoddyTech

String-Konvertierung

Teil des Abschnitts Grundlagen der Rust-Journey von Coddy. Lektion 71 von 75.

Um einen numerischen Typ in eine Zeichenkette umzuwandeln, kannst du die Methode to_string() verwenden. Diese Methode ist für die meisten Datentypen verfügbar, darunter Ganzzahlen und Gleitkommazahlen.

Zum Beispiel:

let number = 42;
let number_str = number.to_string();
println!("The number as a string: {}", number_str);

In diesem Beispiel wandeln wir eine i32-Variable number in einen String um.

Um eine Zeichenkette in einen numerischen Typ umzuwandeln, kannst du die Methode parse() verwenden. Diese Methode gibt ein Ergebnis zurück, das entweder die geparste Zahl oder einen Fehler enthält, falls die Umwandlung fehlschlägt.

Zum Beispiel:

let number_str = "123";
let number: i32 = number_str.parse().unwrap();
println!("The number as an i32: {}", number);

In diesem Beispiel wandeln wir mit der Methode parse() einen String number_str in einen i32 um. Die Methode unwrap() wird verwendet, um den Wert aus dem Result zu extrahieren, wobei angenommen wird, dass die Umwandlung erfolgreich ist.

Wenn die Konvertierung fehlschlägt, gerät das Programm in Panik (bricht ab).

Du kannst parse() auch mit verschiedenen numerischen Typen verwenden:

let float_str = "3.14";
let float_num: f64 = float_str.parse().unwrap();
println!("The number as an f64: {}", float_num);

In diesem Fall wandeln wir eine Zeichenkette float_str in ein f64 um.

challenge icon

Aufgabe

Einfach

Erstelle eine Funktion namens convert_and_print, die drei Argumente entgegennimmt:

  1. Eine Zeichenketten-Slice s: &str. Dies ist eine als Text geschriebene Zahl (z. B. "123.67"). Sie wird nur verwendet, wenn to_string false ist.
  2. Eine Fließkommazahl n: f64: eine Zahl mit Nachkommastellen. Sie wird nur verwendet, wenn to_string true ist.
  3. Ein boolescher Wert to_string: bool: Er legt fest, welche Operation ausgeführt werden soll.

Die Funktion soll die folgenden Operationen ausführen:

  • Wenn to_string true ist: Wandle n mithilfe von .to_string() in eine Zeichenkette um und zähle dann, wie viele Ziffern sie enthält (zähle den Punkt . und das Minuszeichen - nicht mit). Gib das folgende Format aus:
    Number: [string], Digits: [num of digits]

    Wenn beispielsweise n = -321.198623 gilt, lautet die Zeichenkettenform "-321.198623" und sie enthält 9 Ziffern (ohne - und .).

    Tipp: Wandle n in eine Zeichenkette um, wende dann .len() darauf an und ziehe für jeden enthaltenen . oder - den Wert 1 ab.
  • Wenn to_string false ist: Parse die Zeichenkette s mithilfe von .parse() als f64 und wandle sie dann in i32 um (wobei der Dezimalteil entfällt). Gib das folgende Format aus:
    String as number: [number]

    Wenn beispielsweise s = "123.67231" gilt, lautet die Ausgabe String as number: 123.

Rufe convert_and_print zweimal auf:

  1. Zuerst mit to_string auf false gesetzt. Dabei wird die Zeichenkette s verwendet und n ignoriert.
  2. Danach mit to_string auf true gesetzt. Dabei wird die Zahl n verwendet und s ignoriert.

Probier es selbst

use std::io;

fn convert_and_print(s: &str, n: f64, to_string: bool) {
    // Schreibe deinen Code hier
}

fn main() {
    let mut input_number_str = String::new();
    let mut input_n = String::new();

    io::stdin().read_line(&mut input_number_str).unwrap();
    io::stdin().read_line(&mut input_n).unwrap();

    let n: f64 = input_n.trim().parse().unwrap();
    let number_str = input_number_str.trim();

    // Rufe convert_and_print mit to_string = false auf
    
    
    // Rufe convert_and_print mit to_string = true auf
    
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Grundlagen

Übe selbstständig: Online-Rust-Compiler