CodeBlanks Logo Icon CodeBlanks

Tip dönüşümü

stringstream ile tip dönüşümü öğrenirsin.

Dizeden sayıya dönüşüm

Bir dizeyi sayıya çevirmenin güvenli yolu istringstream kullanmaktır. >> operatörü dizedeki sayıyı istenen türe dönüştürür.

Örnek: std::istringstream iss("42"); int n; iss >> n;. Burada "42" dizesi int türüne dönüşür ve n değişkenine konur. Dizede sayı olmayan karakterler varsa >> başarısız olur; bu yüzden dönüşüm sonrası akış durumunu kontrol etmek iyi bir alışkanlıktır. Bu yöntem, std::stoi gibi fonksiyonlara alternatif olarak daha fazla kontrol sunar.

Sayıdan dizeye dönüşüm

Bir sayıyı dizeye çevirmek için ostringstream kullanırsın. << ile sayıyı akışa yaz, .str() ile dizeyi al.

Örnek: std::ostringstream oss; oss << 42; std::string s = oss.str();. Burada 42 sayısı "42" dizesine dönüşür. Bu yöntem, bir sayıyı dize içine yerleştirmenin güvenli yoludur. std::to_string(42) fonksiyonu da aynı işi yapar ama ostringstream biçimlendirme seçenekleri sunar. İki sayıyı aynı dizede birleştirmek istersen oss << a << " " << b; yazarak tek akışta halledebilirsin.

Uygulama Dizeyi sayıya çevir, 8 ekle, geri yaz

Başlangıç kodunda metin dizesi "42" içeriyor. std::istringstream ile bu dizeyi int'e çevir. 8 ekle. Sonuç 50 olacak. std::ostringstream ile sayıyı dizeye çevir ve std::cout ile yazdır.

Başlangıç kodu

main.cpp
#include <iostream>
#include <sstream>
#include <string>

int main() {
    std::string metin = "42";
    // Dizeyi sayıya çevir, 8 ekle, sonucu yazdır

    return 0;
}

Örnek çözüm

main.cpp
#include <iostream>
#include <sstream>
#include <string>

int main() {
    std::string metin = "42";
    std::istringstream iss(metin);
    int sayi;
    iss >> sayi;
    sayi += 8;
    std::ostringstream oss;
    oss << sayi;
    std::cout << oss.str();
    return 0;
}

Beklenen çıktı

50

Soru ve cevaplar

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

1 Dizeden sayıya çevir

Soru
std::istringstream iss("____"); int n; iss >> n;
Cevap
std::istringstream iss("42"); int n; iss >> n;

Açıklama: Dize "42" sayıya dönüşür.

2 Dönüşüm yönünü eşle

Kavram Anlamı
istringstream >> n Dizeden sayıya
ostringstream << n Sayıdan dizeye
.str() Dizeyi alma
>> Akıştan çekme

3 Bir int'i dizeye çevirmek için hangisi kullanılır?

main.cpp
int n = 42;
  • std::ostringstream Doğru cevap
  • std::ifstream
  • std::vector
  • std::cout

Açıklama: ostringstream sayıyı dizeye çevirir.

Orta seviye bölümündeki tüm dersler