Menu
CoddyTech

String Dönüştürme

Coddy'nin Rust Journey'sinin Temeller bölümünün bir parçası. Ders 71 / 75.

Sayısal bir türü dizgeye dönüştürmek için to_string() yöntemini kullanabilirsin. Bu yöntem, tamsayılar ve kayan noktalı sayılar da dahil olmak üzere çoğu veri türünde kullanılabilir.

Örneğin:

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

Bu örnekte, bir i32 değişkenini, number değişkenini String türüne dönüştürüyoruz.

Bir dizgeyi sayısal bir türe dönüştürmek için parse() yöntemini kullanabilirsin. Bu yöntem, ayrıştırılmış sayıyı veya dönüştürme başarısız olursa bir hata içeren bir sonuç döndürür.

Örneğin:

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

Bu örnekte, parse() yöntemini kullanarak bir metin olan number_str değerini i32 türüne dönüştürüyoruz. Dönüştürmenin başarılı olduğunu varsayarak unwrap() yöntemiyle Result içindeki değeri alıyoruz.

Dönüştürme başarısız olursa program paniğe kapılır (başarısız olur).

parse() işlevini farklı sayısal türlerle de kullanabilirsin:

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

Bu durumda, bir metni float_str bir f64 değerine dönüştürüyoruz.

challenge icon

Görev

Kolay

Üç bağımsız değişken alan convert_and_print adlı bir işlev oluştur:

  1. Bir dize dilimi s: &str. Bu, metin olarak yazılmış bir sayıdır (ör. "123.67"). Yalnızca to_string değeri false olduğunda kullanılır.
  2. Bir kayan noktalı sayı n: f64: kayan noktalı bir sayı. Yalnızca to_string değeri true olduğunda kullanılır.
  3. Bir boole değeri to_string: bool: hangi işlemin gerçekleştirileceğini belirler.

İşlev aşağıdaki işlemleri gerçekleştirmelidir:

  • to_string değeri true ise: n değerini .to_string() kullanarak bir dizeye dönüştür, ardından içerdiği rakam karakterlerinin sayısını hesapla (nokta . veya eksi işaretini - sayma). Şu biçimde yazdır:
    Number: [string], Digits: [num of digits]

    Örneğin, n = -321.198623 ise, dize biçimi "-321.198623" olur ve - ile . sayılmadığında 9 rakam karakteri içerir.

    İpucu: n değerini bir dizeye dönüştür, ardından üzerinde .len() kullan ve içerdiği her . veya - için 1 çıkar.
  • to_string değeri false ise: s dizesini .parse() kullanarak bir f64 olarak ayrıştır, ardından onu i32 türüne dönüştür (bu, ondalık kısmı atar). Şu biçimde yazdır:
    String as number: [number]

    Örneğin, s = "123.67231" ise çıktı String as number: 123 olur.

convert_and_print işlevini iki kez çağır:

  1. İlk olarak, to_string değerini false olarak ayarla. Bu, s dizesini kullanır ve n değerini yok sayar.
  2. İkinci olarak, to_string değerini true olarak ayarla. Bu, n sayısını kullanır ve s değerini yok sayar.

Kendin dene

use std::io;

fn convert_and_print(s: &str, n: f64, to_string: bool) {
    // Kodunuzu buraya yazın
}

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();

    // convert_and_print fonksiyonunu to_string = false ile çağırın
    
    
    // convert_and_print fonksiyonunu to_string = true ile çağırın
    
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Temeller bölümündeki tüm dersler

Kendi başına pratik yap: Online Rust derleyicisi