0Pricing
C++ Academy · Ders

Ayrıştırma için Dize Akışı stringstream

Metni belirteçlere ayırmak ve türlendirilmiş değerlere ayrıştırmak için std::stringstream kullanın.

Ayrıştırma için Dize Akışı stringstream, CoddyKit'te ücretsiz bir C++ Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C++ Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C++ Academy kursu toplamda 4 dersten oluşur.

stringstream Nedir?

std::stringstream, bir dizeyi iostream arayüzüyle sarar. cin veya cout gibi, >> ve << ile bu akıştan okuyup bu akışa yazabilirsiniz.

#include <sstream>
std::stringstream ss;

stringstream ile Dize Oluşturma

Karışık türlerden karmaşık dizeler oluşturmak için kullanın. Sonucu almak için .str() çağrısını yapın.

std::stringstream out;
out << "User: " << name << ", Age: " << age;
std::string result = out.str();

stringstream ile Ayrıştırma

Bir dizeden başlatın ve değerleri >> ile çıkarın. Boşluk karakterlerine göre belirteçlere ayırır.

std::stringstream in("42 3.14 hello");
int i; double d; std::string s;
in >> i >> d >> s;

Bir Satırı Belirteçlere Ayırma

Tek seferde bir satırı belirteçlere ayırmak için getline işlevini stringstream ile birleştirin.

std::string line = "1 2 3 4 5";
std::stringstream ss(line);
int n;
while (ss >> n) {
    std::cout << n * n << " ";
}
// 1 4 9 16 25

Ayraç Üzerinden Bölme

Virgüllere, noktalı virgüllere veya herhangi bir karaktere göre bölmek için stringstream üzerinde getline işlevine bir ayraç geçirin.

std::string csv = "apple,banana,cherry";
std::stringstream ss(csv);
std::string fruit;
while (std::getline(ss, fruit, ',')) {
    std::cout << fruit << "\n";
}

istringstream ve ostringstream

Üç tür bulunur:

  • std::istringstream — yalnızca okuma
  • std::ostringstream — yalnızca yazma
  • std::stringstream — her ikisi

Açıklık açısından en dar kapsamlı olanı kullanın.

Ayrıştırma Hatalarını Denetleme

Çıkarma başarısız olursa (örneğin tür yanlışsa) akış bir fail biti ayarlar. Çıkarmadan sonra !ss veya ss.fail() ifadesini denetleyin.

std::stringstream ss("not_a_number");
int x;
if (!(ss >> x)) {
    std::cout << "Parse failed";
}

stringstream'i Sıfırlama

Bir stringstream'i yeniden kullanmak için durumunu ve içeriğini temizleyin.

std::stringstream ss;
ss << "first";
ss.str("");        // clear contents
ss.clear();        // clear flags
ss << "second";

Sayıdan Dizeye

Basit dönüştürmeler için std::to_string, stringstream kullanmaktan daha kısadır.

std::string s = std::to_string(42);   // "42"
std::string p = std::to_string(3.14); // "3.140000"

Akışlar Olmadan Diziden Sayıya

std::stoi, std::stod ve std::stoll, dizelerden sayıları ayrıştırır ve hatalı girdide istisna fırlatır.

int n = std::stoi("42");
double d = std::stod("3.14");
// std::stoi("xyz") throws std::invalid_argument

C++17 std::from_chars

Maksimum hız için <charconv> içindeki std::from_chars, istisna fırlatmadan veya bellek ayırmadan ayrıştırma yapar. Yoğun kullanılan kod yolları için idealdir.

Hızlı Kontrol

std::stringstream kullanmak için hangi başlık dosyasını eklemeniz gerekir?

Özet

std::stringstream, kolay ayrıştırma ve biçimlendirme için dizeleri akışlara dönüştürür. Ayraçlar üzerinden bölmek için bunu std::getline ile birleştirin. Basit durumlarda std::to_string ve std::stoi kullanmayı tercih edin.

Sıkça Sorulan Sorular

“Ayrıştırma için Dize Akışı stringstream” dersi ücretsiz mi?

Evet — “Ayrıştırma için Dize Akışı stringstream” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C++ Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C++ Academy kursu toplamda 4 dersten oluşur.

“Ayrıştırma için Dize Akışı stringstream” dersinde ne öğreneceğim?

Metni belirteçlere ayırmak ve türlendirilmiş değerlere ayrıştırmak için std::stringstream kullanın. C++ Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

C++ Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te C++ Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Ayrıştırma için Dize Akışı stringstream” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu C++ Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her C++ Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. std::string ve C Tarzı Karakter Dizileri
  2. Dize İşlemleri: Birleştirme, Alt Dize, Bulma, Değiştirme
  3. Ayrıştırma için Dize Akışı stringstream
  4. Dize Dönüşümleri: to_string ve stoi
← C++ Academy Sayfasına Dön