Menu
Coddy logo textTech

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ü dizeye dönüştürmek için to_string() yöntemini kullanabilirsiniz. Bu yöntem, tamsayılar ve kayan noktalı sayılar da dâhil olmak üzere çoğu veri türü için 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şkeni olan number'ı bir String'e dönüştürüyoruz.

Bir dizeyi sayısal bir türe dönüştürmek için parse() yöntemini kullanabilirsiniz. Bu yöntem, ayrıştırılmış sayıyı veya dönüştürme başarısız olursa bir hatayı 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, bir dizeyi number_str, parse() yöntemini kullanarak i32 türüne dönüştürüyoruz. Dönüştürmenin başarılı olduğu varsayılarak, Result içindeki değeri çıkarmak için unwrap() yöntemi kullanılır.

Dönüştürme başarısız olursa program panik yapar (başarısız olur).

Farklı sayısal türlerle parse() kullanabilirsiniz:

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

Bu durumda, bir dize olan float_str'i f64'e dönüştürüyoruz.

challenge icon

Görev

Kolay

convert_and_print adlı ve üç bağımsız değişken alan bir işlev oluşturun:

  1. Bir string dilimi s: &str. Bu, metin olarak yazılmış bir number değeridir (ör. "123.67"). Yalnızca to_string değeri false olduğunda kullanılır.
  2. Bir float n: f64: bir kayan noktalı number. Yalnızca to_string değeri true olduğunda kullanılır.
  3. Bir boolean to_string: bool: gerçekleştirilecek işlemi belirler.

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

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

    Örneğin, n = -321.198623 ise string biçimi "-321.198623" olur ve bu biçimde 9 rakam karakteri bulunur (- ve . sayılmaz).

    İpucu: n değerini bir string değerine dönüştürün, ardından üzerinde .len() kullanın ve içerdiği her . veya - için 1 çıkarın.
  • to_string değeri false ise: .parse() kullanarak string s değerini bir f64 olarak ayrıştırın, ardından bunu i32 türüne dönüştürün (ondalık kısmı atar). Şu biçimde yazdırın:
    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ın:

  1. İlk olarak, to_string değerini false olarak ayarlayarak çağırın. Bu, string s değerini kullanır ve n değerini yok sayar.
  2. İkinci olarak, to_string değerini true olarak ayarlayarak çağırın. Bu, number n değerini 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'i to_string = false ile çağır
    
    
    // convert_and_print'i to_string = true ile çağır
    
}
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