Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
1
C++ Ders Notları 3.Ders (String İşlemleri)
Yrd. Doç. Dr. Musa Ataş
2
String sınıfı ve ilgili metodları
C++ da karakterlerden oluşan dizeleri string türünden deklare edebiliriz. Bu türdeki değişkenlere iki tırnak içerisinde her türlü karakter girişi yapabiliriz. string sınıfını (türünü) kullanabilmemiz için en başa #include<iostrem> yazıp using namespace std; satırını eklememiz gerekmektedir. Aksi takdirde derleyicimiz hata mesajı üretecektir. using namespace std; satırı yazılmadığı zaman, komutların başına std:: öneki yazma zorunluluğu bulunmaktadır. #include <iostream> using namespace std; int main() { string message=“Merhaba Dunya!”; cout << “your message:" << message << endl; return 0; } Not: C++ dili C dilinde stringleri tanımlamak için kullanılan char* (char pointer) türünde yapıyı da desteklemektedir. Ancak pointerlarda yapılabilecek olası hatalar ve pointerları öğrenme zorluğu yüzünden bu konu işlenmemektedir.
3
String sınıfı ve ilgili metodları
string bir değişken tanımlandığında constructor (yapıcı) metoduna ilk değer parametre girilerek te yapılabilir. Örn: using namespace std; string str(“Merhaba”); string sınıfından tanımlanmış bir değişkene cin ile kullanıcıdan değer alınabilir. Bunun için iki yol vardır. Birincisi eğer alınacak değer tek kelime ise doğrudan cin>>str_degisken denilebilir. Bu durumda aralarında boşluk olan kelimelerden sadece ilki alınacaktır. İkincisi: aralarında boşluk olan kelimelerin tümü alınacaksa o zaman getline metodu kullanılır. Örn: getline(cin, str_degisken);
4
Stringlerin eklenmesi
stringler birbirlerine “+” operatörü ile eklenebilirler. Mesela: using namespace std; string str1(“Merhaba”); string str2=“ Dunya”); string str3=str1+str2; += opearatörü de stringleri ekleme için kullanılabilir. + veya += operatörü string ile char* türündeki stringi de ekleyebilecek şekilde tasarlanmışlardır.
5
Stringlerin karşılaştırılması
stringler birbirleri ile “==” operatörü ile kıyaslanabilmektedirler. Mesela: using namespace std; string str1(“Merhaba”); string str2=“ Dunya”); bool b=(str1==str2); cout << “comparing two string:” << b << endl; “==“ operatörü genellikle if koşul yapılarında veya koşul içeren diğer yapılarda (for, while gibi) kullanılmaktadır. Örn: const string sifre=“hmyo”; string str=“”; cout << “enter your password:” ; cin >> str; if (str==sifre){ cout << “basarili” << endl; }else{ cout << “ sifre hatali” << endl; }
6
String uzunluğu ve karakterlere erişim
string bir değişkenin uzunluğu length() veya size() metodu ile alınabilir. Mesela: using namespace std; string str=“Merhaba Dunya”; cout << “length of the specified string:” << str.length() << endl; cout << “length of the specified string:” << str.size() << endl; Yukarıdaki örnekte “Merhaba Dunya” cümlesi aslında C++ da bir karakter dizisi olarak algılanmaktadır. C/C++/Java/C# ve diğer birçok dilde diziler 0. indis ten başlarlar. Bu mantığa göre M harfi str stringinin aslında 0. elemanıdır. Örn: #include <iostream> int main() { string sifre="hmyo"; cout << "0.index:" << sifre[0] << endl; cout << "1.index:" << sifre[1] << endl; cout << "2.index:" << sifre[2] << endl; cout << "3.index:" << sifre[3] << endl; }
7
Stringlerde arama (find metodu)
string bir değişkenin içinde bir başka stringin veya karakterin geçip geçmediğini yine string sınıfında tanımlanmış find metodu ile buluyoruz. find metodu parametre olarak aranacak kelime ile aramanın hangi indisten itibaren yapılacağı bilgisini alıp aranan kelimenin ilk geçtiği yerin indis yani pozisyon bilgisini geri dönderir. Mesela aşağıdaki örnekte bir stringin içerisine serpiştirilmiş 4 ayrı and kelimesinin string içerisindeki yerleri find metodu ile bulunmaya çalışılmıştır. Dikkat edilirse find metodu her and kelimesinin yerini bulduğunda bir sonraki arama bu noktanın bir ilerisinden başlatılmaktadır. string sifre="hmyoanddlfklsdfksandsşdlfkşlsdfksandşsldfkldfkand"; cout << "orjinal string:" << sifre << endl; int p1=sifre.find("and",0); cout << "1.yer:" << p1 << endl; int p2=sifre.find("and",p1+1); cout << "2.yer:" << p2 << endl; int p3=sifre.find("and",p2+1); cout << "3.yer:" << p3 << endl; int p4=sifre.find("and",p3+1); cout << "4.yer:" << p4 << endl;
8
Stringlerde alt küme (substring)
string bir değişkenin içinde istediğimiz pozisyondan itibaren istenilen uzunlukta karakter alma işlemini substring işlemi denilir. Bunun için C++ dilinde string sınıfında tanımlanmış substr metodu kullanılmaktadır. Örn: string sifre="hmyoanddl fklsdfksand sşdlfkş lsdfksandşsld fkldfkand"; string alt_string=sifre.substr(12,7); cout << "alt string:" << alt_string << endl;
9
Stringten silme string bir değişkenin içinde istediğimiz pozisyondaki bir stringi silebilmek için erase metodunu kullanıyoruz. erase metodu parametre olarak silmeye başlanacak başlangıç pozisyon numarası ile kaç adet karakterin silineceği (uzunluk) bilgisini alır. Mesela; “Siirt Meslek Yüksek Okulu” stringindeki Meslek kelimesini silebilmek için aşağıdaki kodu yazabiliriz. #include <iostream> using namespace std; int main() { string str="Siirt Meslek Yuksek Okulu"; cout << "orjinal string:" << str << endl; string geriye_kalan=str.erase(6,6); cout << "geriye kalan:" << geriye_kalan << endl; }
10
Stringleri artarda ekleme
Birden fazla string değişken artarda eklenebilir. Bunun için sstream kütüphanesinin include ile programınıza dahil edilmesi gerekmektedir. String dışındaki diğer türler de stream değişkenine eklenebilir bu durumda tüm değişkenler stringe dönderilir. (type casting) #include <iostream> #include <sstream> using namespace std; int main() { string s1="siirt"; string s2="meslek"; int a=21; stringstream ss; ss<<s1<<" "<<s2<<":"<<a<<" yuksek okulu"; string s3=ss.str(); cout<<s3<<endl; return 0; }
11
Stringte istenilen bir indexten sonra ekleme işlemi
string bir değişkenin içinde istediğimiz pozisyondan itibaren istenilen bir string eklenti yapılabilir. Bunun için insert() metodu kullanılır. insert() metodu parametre olarak eklemeye başlanacak başlangıç pozisyon numarası ile eklenecek string ekini alır. Mesela; “Siirt Meslek Yüksek Okulu” stringinde ki Meslek kelimesinin arkasına Bilgisayar kelimesini ekleyebilmek için aşağıdaki kodu yazabiliriz. #include <iostream> using namespace std; int main() { string str="Siirt Meslek Yuksek Okulu"; cout << "orjinal string:" << str << endl; string eklenen=str.insert(12," Bilgisayar"); cout << "eklenmis str:" << eklenen << endl; }
12
String sınıfının diğer metodları
string sınıfında bunların dışında daha birçok kullanılabilecek metod bulunmaktadır. Bunları öğrenemek için google dan detaylı araştırma yapabilirsiniz. C kütüphaneleri ve geriye uyumluluk açısından string sınıfında tanımlanmış c_str() fonksiyonu, const char* tipinde string üretmeye çalışır. Örn: #include <iostream> using namespace std; int main() { string my_string("Merhaba Dunya"); const char* p=my_string.c_str(); cout<< p <<endl; }
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.