stringstream class c usage examples
C ++ 'daki bir dizgi akımı sınıfı, dizeler üzerinde Çalıştırılacak bir Akış Sınıfıdır. Stringstream sınıfı, Giriş / Çıkış İşlemlerini Bellek Tabanlı akışlarda uygular, yani dize:
C ++ 'daki dizge akımı sınıfı, bir dizgi nesnesinin bir akış olarak ele alınmasına izin verir. Dizeler üzerinde işlem yapmak için kullanılır. Dizeleri akışlar olarak ele alarak, tıpkı cin ve cout akışları gibi dizeden / dizgeye çıkarma ve ekleme işlemini gerçekleştirebiliriz.
Bu tür işlemler çoğunlukla dizeyi sayısal veri türlerine dönüştürmek için yararlıdır ve bunun tersi de geçerlidir. Stringstream sınıfı, farklı çözümleme türlerinde de yardımcı olur.
=> Kolay C ++ Eğitim Serisini Okuyun.
Ne öğreneceksin:
C ++ 'da stringstream Sınıfı
Bir dizgi akımı sınıfı aşağıdaki gibi resimsel olarak gösterilebilir:
Stringstream sınıfının ios diyagramında resmin neresinden geldiğini görebiliriz. Bu sınıf, iostream sınıfından türetilmiştir. Dizge akımı sınıfının nesneleri, bir dizi karakter içeren bir dizge tamponu kullanır. Bu arabelleğe doğrudan bir dizi nesnesi olarak erişilebilir.
Bu amaçla stringstream'in str üyesini kullanabiliriz. C ++ programında dizgi akımı sınıfını kullanmak için başlığı kullanmalıyız .
Örneğin,dizeden bir tamsayı ayıklama kodu şöyle olacaktır:
string mystr(“2019”); int myInt; stringstream (mystr)>>myInt;
Burada '2019' değerine sahip bir dizge nesnesi ve 'myInt' int nesnesi bildiriyoruz. Daha sonra, string nesnesinden bir stringstream nesnesi oluşturmak için stringstream sınıf yapıcısını kullanırız. Daha sonra çıkarma operatörü (>>) kullanılarak değer myInt'e çıkarılır. Yukarıdaki koddan myInt'in değeri 2019 olacaktır.
Stringstream sınıfının çeşitli işlemlerini inceleyelim.
Stringstream Kullanarak Ekleme ve Çıkarma İşlemleri
Şimdi dizgi akışına veya ekleme işlemine nasıl veri alınacağını ve dizgi akışından, yani dizgi akışı sınıfının çıkarma işleminden nasıl veri alınacağını göreceğiz.
# 1) Ekleme İşlemi
Verileri bir dizgi akışına almak için iki yöntem kullanabiliriz.
(i) Ekleme Operatörünü Kullanma (<<)
android telefonda apk dosyası nasıl açılır
Bir dizi dizisi nesnesi ss verildiğinde, ss tamponuna aşağıdaki gibi veri atayabiliriz.<< operator.
stringstream ss; ss<< “hello,world!!”;
Bu, 'merhaba, dünya !!' stringstream ss içine.
(ii) str (string) İşlevini Kullanma
Stringstream tamponuna veri atamak için str fonksiyonunu da kullanabiliriz. Str işlevi, veri dizesini bir bağımsız değişken olarak alır ve bu verileri dizi akışı nesnesine atar.
stringstream ss; ss.str(“Hello,World!!”);
# 2) Ekstraksiyon İşlemi
Verileri dizgi akışından çıkarmak veya çıkarma işlemi için iki yöntemimiz var.
(i) str () İşlevini Kullanma
Verileri stringstream'den çıkarmak için str () fonksiyonunu aşağıdaki gibi kullanabiliriz.
stringstream ss; ss<<”Hello,World”; cout< (ii) Çıkarma Operatörünü Kullanma (>>)
Aşağıdaki gibi dize akışı verilerini görüntülemek için çıkarma operatörünü kullanabiliriz.
Stringstream ss; ss<>str;
Yukarıdaki koda göre, değişken str, çıkarma operatörü eyleminin bir sonucu olarak ss nesnesinin değerine sahip olacaktır.
Aşağıda, stringstream sınıfının Insertion ve Extraction işlemlerinin kullanımını gösteren eksiksiz bir program verilmiştir.
#include #include #include using namespace std; int main() { //insertion operator << stringstream os; os << 'software '; cout<) stringstream ss; ss<> mystr1; string mystr2; ss>>mystr2; string mystr3; ss>>mystr3; cout< Çıktı:
c ++ kaynak kodunda çift bağlantılı liste
Yukarıdaki programda, önce yerleştirme yöntemlerini, yani operatörü gösterdik.<< and str(string) function that reads the string into stringstream.
Daha sonra, verileri dizgi akışından ve >> operatöründen alan str () işlevi olan ayıklama yöntemlerinin çalışmasını gördük.
>> operatörü için, ilk dizgi akışı verisi, veriyi bir dizge değişkenine atarken boşluklardan oluştuğundan, sadece ilk boşluğa kadar okuyacağını unutmayın. Bu nedenle, tüm dizgi akışı nesnesini dize verilerine dönüştürmek için, boşluklarla ayrılmış verileri okumak için her bir değişkene ihtiyacımız var.
Dolayısıyla, yukarıdaki programda, tüm dizgi akışı nesne verilerini elde etmek için üç dize değişkenine ihtiyacımız var.
C ++ 'da stringstream uygulamaları
Stringstream sınıfının kullanımlarını çeşitli uygulamalarda bulabiliriz.
Başvurulardan bazıları referansınız için aşağıda tartışılmıştır:
# 1) Dizeler ve Sayılar Arasında Dönüşüm
Dizgi akışının ekleme ve çıkarma operatörleri tüm temel veri türleriyle çalışır. Dolayısıyla, dizeleri sayısal türlere dönüştürmek için bunları kullanabiliriz ve bunun tersi de geçerlidir.
Dizeler ve sayılar arasında dönüşüm için eksiksiz program aşağıda verilmiştir.
#include #include #include using namespace std; int main() { //Numeric to string stringstream ss; int nInt = 2019; double nDouble = 3.142; ss << nInt << ' ' <> myStr1 >> myStr2; cout<<'The numeric values converted to string:'<> nIntval >> nDoubleval; cout<<'The string values converted to numeric types:'< Çıktı:
İlk önce sayısal değerleri string değerlerine dönüştürdük. Ardından, sayısal dizgi değerlerini sayısal değerlere dönüştürüyoruz.
# 2) Bir Dizedeki Sözcük Sayısını Sayma
Bir dizedeki kelimelerin sayısını saymak için stringstream sınıfını kullanabiliriz. Programın tamamı aşağıda verilmiştir.
#include #include #include using namespace std; int main() { string str = 'Simple Questions To Check Your Software Testing Basic Knowledge'; stringstream s(str); string word; int count = 0; while (s >> word) count++; cout << ' Number of words in given string are: ' << count; return 0; }
Çıktı:
java'da genel bir dizi nasıl başlatılır
Verilen dizedeki kelime sayısı: 9
Belirli bir dizedeki kelimelerin sayısını saymak için, önce onu dizgi akımı nesnesine dönüştürürüz. Ardından, bir döngüde (her boşlukta durduğu için) bir çıkarma operatörü kullanarak her kelimeyi sayarız. Son olarak, toplam kelime sayısının değerini yazdırıyoruz.
# 3) Bir Dizede Ayrı Sözcük Frekanslarını Yazdırın
C ++ 'da dizgi akışının bir sonraki uygulaması, belirli bir dizedeki farklı kelimelerin frekanslarını yazdırmaktır. Bu, belirli bir kelimenin verilen dizede kaç kez göründüğünü yazdıracağımız anlamına gelir.
Bunun için, dizedeki her bir kelime ile anahtar olarak bir anahtar-değer çiftine sahip olacak bir harita yapısı sağladık ve buna karşılık gelen değer, o belirli kelimenin frekansıdır.
Tam C ++ programı aşağıda gösterilmiştir.
#include #include #include #include using namespace std; int main() { string mystr = 'Simple Questions To Check Your Software Testing Knowledge '; map myMap; stringstream ss(mystr); string Word; while (ss >> Word) myMap(Word)++; map::iterator it; for (it = myMap.begin(); it != myMap.end(); it++) cout Çıktı:
Bu programda dizideki her kelime haritaya girilir ve ardından her kelimenin sayısı veya sıklığı haritadaki ilgili anahtar için bir değer olarak kaydedilir. Bu şekilde dizenin tüm kelimelerini ve karşılık gelen frekanslarını çıkarırız.
Sonuç
Stringstream sınıfı, dize nesnelerine / dize nesnelerinden veri eklemek ve çıkarmak için kullanılır. String nesnesi için bir akım görevi görür. Stringstream sınıfı, bir girdi-çıktı kanalına sahip olmaması dışında cin ve cout akışlarına benzer.
Stringstream sınıfının çeşitli işlemlerini, programlamadaki uygulamalarının birkaç örneğiyle birlikte tartıştık.
Sonraki eğitimlerimizde, C ++ dilinin kütüphane işlevlerini ayrıntılı olarak tartışacağız.
=> Tüm C ++ Eğitim Serisini Burada Arayın.
Önerilen Kaynaklar
- MongoDB'de İmleç Kullanımı Örneklerle
- MongoDB'de ObjectId () 'nin Örneklerle Kullanımı
- C # StringBuilder Sınıfını ve Yöntemlerini Örneklerle Kullanmayı Öğrenin
- Java Arayüzü ve Örneklerle Soyut Sınıf Eğitimi
- Selenyum İddiası Örnekleri - Projelerde Pratik Uygulamalar
- Find () Yöntemini Kullanan MongoDB Sorgu Belgesi (Örnekler)
- C # Dize Eğitimi - Kod Örnekleriyle Dize Yöntemleri
- Selenium'da Java'nın Temellerini Örneklerle Keşfedin