CodeBlanks Logo Icon CodeBlanks

Özet - İleri string

split, contains ve replace'i birleştirerek bir metin filtreleyici yazarsın.

İleri string özeti

String sahip olunan, &str ödünç metindir; parametrelerde &str al. Metin UTF-8'dir: len() bayt, chars().count() karakter sayar; bayt dilimleri karakter sınırında olmalıdır. Arama: contains, find, starts_with; değiştirme: replace; bölme: split, split_whitespace, lines, split_once; birleştirme: join, format!, push_str.

İlk harfi büyütmek

Bir kelimenin ilk harfini büyütmek için ilk karakter ayrılır, büyütülür ve kalan dilimle birleştirilir:

fn ilk_buyuk(k: &str) -> String {
    let mut c = k.chars();
    match c.next() {
        Some(ilk) => ilk.to_uppercase().collect::<String>() + c.as_str(),
        None => String::new(),
    }
}

c.as_str(), yineleyicinin henüz okunmamış kısmını dilim olarak verir.

Uygulama Kelimeleri büyüt

Yukarıdaki ilk_buyuk fonksiyonunu yaz. "rust çok hızlı" metnini split_whitespace ile böl, her kelimeye uygula, join(" ") ile birleştirip yazdır.

Başlangıç kodu

main.rs
fn main() {
    // buraya yaz
}

Örnek çözüm

main.rs
fn ilk_buyuk(k: &str) -> String {
    let mut c = k.chars();
    match c.next() {
        Some(ilk) => ilk.to_uppercase().collect::<String>() + c.as_str(),
        None => String::new(),
    }
}

fn main() {
    let s = "rust çok hızlı";
    let parcalar: Vec<String> = s.split_whitespace().map(ilk_buyuk).collect();
    println!("{}", parcalar.join(" "));
}

Beklenen çıktı

Rust Çok Hızlı

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 <code>"istanbul".to_uppercase()</code> sonucu nedir?

  • "İSTANBUL"
  • "Istanbul" Doğru cevap
  • Derleme hatası
  • "ISTANBUL" (Türkçe İ değil)

Açıklama: Standart kütüphane dile duyarlı değildir; i → I dönüşümü yapar. Türkçe kurallar için ayrı bir kütüphane ya da elle eşleme gerekir.

2 Kelimelere böl

Soru
let kelimeler: Vec<&str> = s.____().collect();
Cevap
let kelimeler: Vec<&str> = s.split_whitespace().collect();

Açıklama: split_whitespace kelimeleri boşluk sayısından bağımsız olarak ayırır.

3 Grubun özeti

Kavram Anlamı
s.len() Bayt sayısı
s.chars() Karakterler
s.split(..) Parçalar
v.join(..) Birleştirme

Başlangıç bölümündeki tüm dersler

16 Proje: Yapılacaklar listesi

  1. Görev modeli
  2. Ekleme
  3. Listeleme
  4. İşaretleme
  5. Komut okuma