Avatar ·

Wie man ein char in Rust in einen int umwandelt, sodass '1' zu 1 wird?

Hallo zusammen! Ich habe gerade angefangen, Rust zu lernen, und bin auf eine scheinbar einfache Aufgabe gestoßen. Ich muss ein Zeichen aus einem String lesen und in eine ganze Zahl umwandeln. Zum Beispiel habe ich einen String "123" und möchte ihn in einer Schleife durchgehen, jedes Zeichen ('1', '2', '3') nehmen und in die entsprechende ganze Zahl (1, 2, 3) umwandeln. In anderen Sprachen wie Python oder JavaScript ist das sehr einfach: `int('1')` oder `parseInt('1')`. Aber in Rust finde ich kein direktes Äquivalent. Ich habe versucht, diesen Code zu schreiben: ```rust fn main() { let c: char = '1'; let n: i32 = c as i32; // Versuch 1 println!("{}", n); } ``` Aber das gibt 49 aus, nicht 1. Ich verstehe, dass 49 der ASCII-Code des Zeichens '1' ist. Wie bekomme ich korrekt den numerischen Wert der Ziffer, nicht ihren Code? Ich brauche eine Lösung, die mit allen Ziffern von '0' bis '9' funktioniert. Idealerweise sollte sie idiomatisch für Rust sein und keinen unsafe Code enthalten. Vielen Dank im Voraus für die Hilfe! <<>>

Richtige Umwandlung