Strings (Dizeler)
Şimdiye kadar görülen tüm programlarda, sadece sayıları ifade etmek için kullanılan sadece sayısal değişkenler kullandık. Ancak sayısal değişkenlere ek olarak, kelimeler, cümleler, isimler, metinler, vb. gibi karakterlerin ardışıklarını temsil etmemizi sağlayan karakter dizileri de vardır. Şimdiye kadar bunları yalnızca sabit olarak kullandık, ancak bunları içerebilecek değişkenleri hiç kullanmadık.
C++ ‘da karakter dizilerini saklamak için belirli bir temel değişken türü yoktur. Bu özelliği yerine getirmek için karakter elemanlarının ardışıkları olan karakter char dizilerini kullanabiliriz. Bu veri türünün (char) tek bir karakteri depolamak için kullanıldığını unutmayın, bu nedenle de dizileri genellikle tek karakterli diziler yapmak için kullanılır.
Syntax (Sözdizimi)
char isimDizisi[10] = "Caner";
Örnek:
#include <iostream> using namespace std; int main() { char isimDizisi[10] = "Caner"; cout << isimDizisi << endl; return 0; }
Çıktı:
Caner
Örnek:
#include <iostream> using namespace std; int main() { char renkler[5][20] = { "Sarı", "Kırmızı", "Yeşil", "Beyaz", "Mavi" }; for (int x = 0; x < 5; x++) { cout << renkler[x] << endl; } return 0; }
Çıktı:
Sarı Kırmızı Yeşil Beyaz Mavi
String Class (Karakter Sınıfı)
C++ ‘da karakter dizisini temsil eden std :: string sınıfının bir nesnesidir. Dizilerde birleştirme, karşılaştırma, dönüştürme vb. birçok fonksiyon olarak gerçekleştirebiliriz.
Syntax (Sözdizimi)
//Dize kitaplığını dahil ettik #include <string> // Bir karekter dize değişkeni oluşturma string dizi[10] = "Caner";
Örnek:
#include <iostream> using namespace std; int main() { string renkler[5] = { "Sarı", "Kırmızı", "Yeşil", "Beyaz", "Mavi" }; for (int x = 0; x < 5; x++) { cout << renkler[x] << endl; } return 0; }
Çıktı:
Sarı Kırmızı Yeşil Beyaz Mavi
String Concatenation (Karakterleri birbirine bağlama)
Karakterleri birbirine bağlamak için + operatörü kullanılır. Buna aynı zamanda birleştirme işlemi de denir.
Örnek:
#include <iostream> using namespace std; int main() { string ad = "Caner "; string soyad = "Karadağ "; string ulke = "Türkiye"; string tumKarakterler = ad + soyad + ulke; cout << tumKarakterler << endl; return 0; }
Çıktı:
Caner Karadağ Türkiye
Not: Yukarıdaki örnekte, çıktıda Caner, Karadağ ve Türkiye arasında boşluk oluşturmak için ad ve soyadın ardından bir boşluk ekledik. Ancak, tırnak işareti (“” veya ”) içeren bir boşluk da ekleyebiliriz.
Örnek:
#include <iostream> using namespace std; int main() { string ad = "Caner"; string soyad = "Karadağ"; string ulke = "Türkiye"; string tumKarakterler = ad +" " + soyad + " "+ ulke; cout << tumKarakterler << endl; return 0; }
Çıktı:
Caner Karadağ Türkiye
Not: C++ ‘da geçerli değişkenin sonuna ek karakterler ekleyerek dizeyi genişletebiliriz. Bunun içinde değişkenin sonuna append() ekliyoruz.
Örnek:
#include <iostream> using namespace std; int main() { string ad = "Caner "; string soyad = "Karadağ "; string ulke = "Türkiye"; string tumKarakterler = ad.append(soyad).append(ulke); cout << tumKarakterler << endl; return 0; }
Çıktı:
Caner Karadağ Türkiye
String Length (Karakter Uzunluğu)
Bir karakter dizisinin uzunluğunu elde etmek için size() fonksiyonu kullanabiliriz. Aynı zamanda length() fonksiyonunu da kullanabiliriz.
Örnek:
#include <iostream> using namespace std; int main() { string alfabe1 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; cout << "Alfabe değişkeninin karakter uzunluğu: " << alfabe1.length() << endl; string alfabe2 = "ABCÇDEFGĞHİIJKLMNOÖPRSŞTUÜVYZ"; cout << "Alfabe değişkeninin karakter uzunluğu: " << alfabe2.size() << endl; return 0; }
Çıktı:
Alfabe değişkeninin karakter uzunluğu: 26 Alfabe değişkeninin karakter uzunluğu: 35
Not: Burada bilmemiz gereken önemli noktalardan birisi ise alfabe2 değişkeni içinde bulunan Türkçe karakterler string değişkeninde uzunluk olarak 2 karakterlik yer kaplamaktadır.
Access Strings (Dizeleri Erişebilme)
Dizedeki karakterlere köşeli parantez [] içindeki dizin numarasına yazılarak erişebiliriz.
Örnek:
#include <iostream> using namespace std; int main() { string dizi = "Caner Karadağ"; cout << dizi[0] << endl; cout << dizi[3] << endl; cout << dizi[10] << endl; return 0; }
Çıktı:
C e d
Change String Characters (Dize Karakterlerini Değiştirme)
Bir dizedeki belirli bir karakterin değerini değiştirmek için dizin numarasına yazıp tek tırnak içine alınarak kullanabiliriz.
Örnek:
#include <iostream> using namespace std; int main() { string dizi = "Caner Karadağ"; dizi[10] = 'D'; cout << dizi; return 0; }
Çıktı:
Caner KaraDağ
Input Strings (Giriş Dizeleri)
Bir kullanıcı tarafından girilen bir dizeyi görüntülemek için cin >> operatörünü kullanmak yapabiliriz.
Örnek:
#include <iostream> using namespace std; int main() { string ad, soyad; cout << "Adınız: "; cin >> ad; cout << "Soyadınız: "; cin >> soyad; cout << "Ad Soyadınız: " << ad +" " +soyad; return 0; }
Giriş:
Adınız: Caner Soyadınız: KARADAĞ
Çıktı:
Ad Soyadınız: Caner KARADAĞ
Not: Çoğu zaman bir metin satırını okumak için getline() fonksiyon işlemini kullanabiliriz. Cin’i ilk parametre, karakter dizeni değişkenini ise ikinci parametre olarak alır.
Örnek:
#include <iostream> using namespace std; int main() { string ad, soyad; cout << "Adınız: "; getline (cin, ad); cout << "Soyadınız: "; getline (cin, soyad); cout << "Ad Soyadınız: " << ad +" " +soyad; return 0; }
Giriş:
Adınız: Caner Soyadınız: KARADAĞ
Çıktı:
Ad Soyadınız: Caner KARADAĞ