"Enter"a basıp içeriğe geçin

String Sınıfı

String Sınıfı

Stringler birden çok karakter tutmaya yarayan dizilerdir. Sonlarında NULL karakter bulunur. String sınıfı ise içinde bir çok fonksiyon bulunan ve bu fonksiyonlar sayesinde stringleri çok rahat şekilde manipüle  edebileceğimiz bir  sınıftır. String sınıfını kullanabilmek için öncellikle #include<string> diyerek kodumuza dahil etmeliyiz .
Ayrıca bu sınıfta bazı  operatörler (+ gibi) stringler üzerinde işlemler yapmak için aşırı yüklenmiştir

Stringleri çeşitli şekillerde oluşturabiliriz. Eğer ilk atamayı yapmazsak string  boş  kalır.

Stringlere bu şekilde atamalar yapılabildiği gibi,  constructor’a parametre yollayarak atamalar yapmak da mümkündür.

String sınıfı eşitlik durumlarına bakma

Normalde C dilindeki stringlerde == operatörünü kullandığımızda adreslerini karşılaştırıyordu. Ve bu bizim istediğimiz gibi bir  karşılaştırma değildi.

C++ String sınıfında karşılaştırma operatörleri (== < > != vb ) stringleri gerçekten karşılaştırabilmemiz için aşırı yüklenmiştir.

String sınıfı iteratörleri

String sınıfınında iteratörler sayesinde çok daha işlevsel kodlar da yazabiliriz.

begin() : stringin ilk karakterini belirten iteratör
end() : stringin sonunu belirten iteratör

rbegin() ve rend() : tersten yazdırma gibi işlemlerde kullanılan iteratörler

Tamamını yazdı

İlk 3 yani “mur” ile son 2 yani “Te” yazmadı

 

String sınıfı nesne boyutu

Daha önceden bahsettiğimiz gibi, konteyner sınıflarda kapasite, içindeki eleman sayısından fazla olabilir. Böylece yeni eleman ekleneceği zaman her seferinde yer almaya gerek kalmaz. Yada diyelim ki stringimiz 20 karakterden oluşuyordu, ancak biz değişkenimize 10 karakterlik yeni bir değer atadık. Kapasitesi hala 20 olarak kalır ancak uzunluğu 10 olur.

Görüldüğü gibi  ilk başta boyut, uzunluk ve kapasite aynı. Ancak boyutunu arttırdığımızda kapasite daha çok  artıyor. Daha sonra boyutu azalttığımızda ise kapasite aynı kalıyor.

 

 

 

resize () : diziyi yeniden boyutlandırır. Aksini belirtmezsek, eğer boyut artarsa yeni yerlere boşluk koyar. Boyut azalırsa da sondan siler.

İki stringi yer değiştirme

String sınıfı nesnesini boşaltma ve boş olduğunu anlama

.clear() diziyi boşaltır.

.empty() boş olup olmadığına bakar. Boşsa true döner

Stringin bir karakterine erişme

Konteyner sınıflarda tek bir elemana ulaşmak için genel olarak 2 yol vardır.

1)Dizi indeksine erişir gibi erişebiliriz :

2)   .at( i )  fonksiyonu ile erişebilirim

İkisinin de işlevi ve kullanımı neredeyse aynı. Tek fark, eğer .at( i )  kullanırsak exception ile güvenliği arttırabiliriz.

str[ i ] herhangi bir hata kontrolü yapmaz.

 

String sınıfı nesnesinin bir kısmını değiştirme

Görüldüğü gibi  pozisyonlar 0dan başlıyor

 

 

 

Stringe ekleme fonksiyonları

push_back (‘ x ‘) : stringin boyunu 1 arttırıp sonuna x karakteri ekler.
append () : bir stringin bir parçasını başka bir stringin sonuna eklemek için kullanılır.

Boşluklara dikkat !!!

 

 

 

Stringin arasında bir yere bir şey ekleme

String  sınıfı nesnesinin belli bir kısmını silme

String  içinde bir şey arama

Öncelikle npos’un ne olduğunu anlatalım.
Eğer  aranan şey stringin içinde yokra npos diye bir değer döner. if ( found !=npos ) aranan bulundu demektir

Verilen listedeki karakterlerden birini bulma 

str.find_first_of(“”);

 

 

str.find_last_of(“”); ile de sondan başlayabiliriz.  

Listede olmayan bir karakteri bulma

 

 

Daha fazlası için bakabilirsiniz

 

    Bir cevap yazın

    E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir