String akımları
- C++ kursu
- Başlangıç
- Ders 88/116
- 5 dk
std::istringstream ve ostringstream ile dize akımlarını öğrenirsin.
Dize akımları: istringstream
Bazı durumlarda bir dizenin içindeki sayıları veya sözcükleri parça parça çekmen gerekir. C++ bunun için istringstream akımını sunar; bir dizeyi, tıpkı cin gibi >> operatörüyle okuyabilirsin.
#include <sstream>
istringstream iss("10 20 30");
int a, b, c;
iss >> a >> b >> c;Burada iss nesnesi dizeyi bir akım gibi davranır; üç int değer sırayla çıkarılır. Boşluklar otomatik atlanır. Bu yöntem, özellikle boşlukla ayrılmış veriyi çözümlemek için kullanışlıdır.
ostringstream ile biçimleme
Diğer yandan ostringstream birçok parçayı tek bir dizede birleştirmek için kullanılır. << operatörüyle değerleri akıma yazarsın, sonunda .str() metoduyla tüm akımı bir string olarak alırsın.
ostringstream oss;
oss << "Skor: " << 95;
string sonuç = oss.str();Burada sonuç dizesi "Skor: 95" olur. Bu yöntem, to_string ile uğraşmadan farklı türlerden değerleri rahatça birleştirmeni sağlar; özellikle hata mesajı veya rapor oluştururken yararlıdır.
Uygulama Dizeden iki sayı oku ve topla
#include <sstream> başlığını ekle. istringstream iss("15 25"); ile bir okuma akımı oluştur. >> operatörüyle iki int değişkene sayıları çek, sonra cout ile toplamlarını yazdır.
Başlangıç kodu
#include <iostream>
#include <string>
// sstream başlığını ekle
using namespace std;
int main() {
// istringstream ile "15 25" dizesinden iki sayı oku
// toplamlarını cout ile yazdır
return 0;
}Örnek çözüm
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main() {
istringstream iss("15 25");
int a, b;
iss >> a >> b;
cout << a + b << endl;
return 0;
}Beklenen çıktı
40
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Bir dizedeki boşlukla ayrılmış sayıları okumak için hangisi uygundur?
- istringstream Doğru cevap
- ostringstream
- to_string
- stoi
Açıklama: istringstream, dizeyi okuma akımı olarak kullanır.
2 Boşluğu doldur: ostringstream tanımı
#include <sstream>
using namespace std;
int main() {
____ oss;
oss << "Merhaba";
return 0;
}
#include <sstream>
using namespace std;
int main() {
ostringstream oss;
oss << "Merhaba";
return 0;
}
Açıklama: ostringstream yazma akımı oluşturur.
3 Akım türünü göreviyle eşleştir
| Kavram | Anlamı |
|---|---|
istringstream |
Dizeden okur |
ostringstream |
Dizeye yazar |
.str() |
Akımı dize olarak verir |