C++ bize iki tip string yapısı sunmaktadır.
- Birincisi C stili karakter dizeleri
- Diğeri ise C++’da standart olarak tanımlı string sınıfıdır.
C Stili Karakter Dizeleri
C stili karakter dizesi C dilinde var olan ve C++ içinde desteklenmeye devam eden ‘\0’ boş karakterle sonlanan tek boyutlu bir karakter dizisidir. Karakter dizleri oluşturulduğunda dize sonuna konulmasa bile program tarafından bu sonlandırma işareti konulacaktır.
Örnek:
1 2 3 | char uyari[6] = {'S', 'e', 'l', 'a', 'm', '\0'}; |
yada değişken tanımlandığında string dizesi ekleyerek de yapmak mümkün. Fakat burada unutulmaması gereken durum son sembol olma ‘\0’ sonlandırma işaretini içerdiğidir.
1 2 3 | char uyari[] = "selam"; |
Sonuç olarak, null karakterini bir dize sabitinin sonuna yerleştirmezsiniz. C++ derleyicisi, dizeyi başladığında dizenin sonunda ‘\0’ öğesini otomatik olarak yerleştirir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | #include <iostream> using namespace std; int main () { char selam[6] = {'S', 'e', 'l', 'a', 'm', '\0'}; cout << "Selam Mesaji: "; cout << selam<< endl; return 0; } |
C++, boş sonlandırılmış dizeleri işleyen çok çeşitli işlevleri destekler.
C++ String Fonksiyonları
Sıra | Fonksiyon veTanımı |
---|---|
1 | strcpy(s1, s2); s2’yi s1 içine kopyalar |
2 | strcat(s1, s2); s2 dizesini s1 s1 dizesinin sonuna ekler. |
3 | strlen(s1); s1 dizesinin uzunluğunu getirir. |
4 | strcmp(s1, s2); s1 ile s2 dizesini karşılaştırır. |
5 | strchr(s1, ch); s1(string) bulunan ch karakterinin pointerını döndürür. Aranan ch yoksa null döndürür. |
6 | strstr(s1, s2); s1 içinde s2 değerinin geçtiği ilk adresi döndürür. |
Aşağıdaki örnek, yukarıda bahsedilen işlevlerin bir kısmını kullanır.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | #include <iostream> #include <cstring> using namespace std; int main () { char str1[10] = "Hello"; char str2[10] = "World"; char str3[10]; int len ; // copy str1 into str3 strcpy( str3, str1); cout << "strcpy( str3, str1) : " << str3 << endl; // concatenates str1 and str2 strcat( str1, str2); cout << "strcat( str1, str2): " << str1 << endl; // total lenghth of str1 after concatenation len = strlen(str1); cout << "strlen(str1) : " << len << endl; return 0; } |
C++ String Class Kullanımı
Standart C++ kütüphanesi, yukarıda belirtilen tüm işlemleri destekleyen bir dize sınıfı türü ve daha fazla işlevsellik sağlar. Aşağıdaki örneği inceleyelim.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | #include <iostream> #include <string> using namespace std; int main () { string str1 = "Hello"; string str2 = "World"; string str3; int len ; // str1 değerini str3 içine kopyalar str3 = str1; cout << "str3 : " << str3 << endl; // str1 ve str2 değerlerini birleştirir. str3 = str1 + str2; cout << "str1 + str2 : " << str3 << endl; // str3 değerinin boyutunu verir. len = str3.size(); cout << "str3.size() : " << len << endl; return 0; } |
Daha fazla std::string fonksiyonu için c++ sitesini inceleyin.
Oh allahım sana şükürler olsun teşekkürler 😀