Menu
Coddy logo textTech

String-Konvertierung

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

Um einen numerischen Datentyp in einen String umzuwandeln, kannst du die Methode to_string() verwenden. Diese Methode ist für die meisten Datentypen verfügbar, einschließlich 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 konvertieren wir eine i32-Variable number in einen String.

Um einen String 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, wenn 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 konvertieren wir einen string number_str mithilfe der Methode parse() in ein i32. Die Methode unwrap() wird verwendet, um den Wert aus dem Result zu extrahieren, wobei davon ausgegangen wird, dass die Konvertierung erfolgreich ist.

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

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 einen String float_str in ein f64 um.

challenge icon

Aufgabe

Einfach

Erstelle eine Funktion namens convert_and_print, die drei Argumente entgegennimmt:

  1. Eine String-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 Gleitkommazahl n: f64: eine Fließkommazahl. Sie wird nur verwendet, wenn to_string true ist.
  3. Ein boolescher Wert to_string: bool: bestimmt, welcher Vorgang ausgeführt werden soll.

Die Funktion soll die folgenden Vorgänge ausführen:

  • Wenn to_string true ist: Wandle n mithilfe von .to_string() in einen String um und zähle anschließend, wie viele Ziffernzeichen er enthält (zähle den Punkt . und das Minuszeichen - nicht mit). Gib das Ergebnis im folgenden Format aus:
    Number: [string], Digits: [num of digits]

    Wenn beispielsweise n = -321.198623 ist, lautet die Stringdarstellung "-321.198623" und sie enthält 9 Ziffernzeichen (ohne - und . zu zählen).

    Tipp: Wandle n in einen String um, verwende anschließend .len() darauf und ziehe für jeden darin enthaltenen .- oder --Wert 1 ab.
  • Wenn to_string false ist: Parse den String s mithilfe von f64 als .parse() und wandle ihn anschließend in i32 um (wodurch der Dezimalteil entfernt wird). Gib das Ergebnis im folgenden Format aus:
    String as number: [number]

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

Rufe convert_and_print zweimal auf:

  1. Zuerst mit to_string, das auf false gesetzt ist. Dadurch wird der String s verwendet und n ignoriert.
  2. Danach mit to_string, das auf true gesetzt ist. Dadurch 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