String nedir?
Bir dize, bir karakter dizisidir. Bir C ++ dizesi, std :: string sınıfının bir nesnesidir. Karakterler, izin verilen tek bir karakter bayta erişime sahip depolanmış bayt dizileridir.
C ++ dizeleri belleği dinamik olarak ayırır. Gerekirse, çalışma süresi sırasında dizeye daha fazla bellek ayrılabilir. Önceden bellek ayrılması olmadığından, bellek israfı da olmaz. Karşılaştırmalar, birleştirme, dönüştürme vb.Dahil olmak üzere dizeler üzerinde çeşitli işlemler gerçekleştirebiliriz.
Bu C ++ eğitiminde şunları öğreneceksiniz:
- String nedir?
- Dizeleri Bildirme
- C-Stili Karakter Dizisi
- std :: string
- Dize Değerlerine Erişim
- Dize İşlevleri:
- strcpy ()
- strcat ()
- strlen ()
- strcmp ()
- Misal:
Dizeleri Bildirme
C ++ iki tür dize bildirimini destekler:
- C tarzı karakter dizesi
- Dize sınıfı türü
C-Stili Karakter Dizisi
Bu tür bir dizi bildirimi C programlama dilinde tanıtıldı. C ++ bunu desteklemeye devam ediyor. Bu, boş bir karakterle (\ 0) sonlandırılmış tek boyutlu bir karakter dizisidir. Boş sonlu bir dize, dizeyi oluşturan ve ardından bir null izleyen karakterlere sahiptir.
Aşağıda verilen dize bildirimini göz önünde bulundurun:
char name[5] = {'J', 'o', 'h', 'n', '\0'};
Yukarıdaki bildirim, John kelimesini oluşturan bir dize oluşturur. Sözcük 4 karakterden oluşur, ancak dizenin boyutu 5'tir. Ekstra boşluk boş karakterin tutulmasına izin verir.
Dizi başlatma kuralını kullanarak yukarıdaki ifadeyi şu şekilde yazabiliriz:
char name[] = "John";
Boş karakteri dize sabitinin sonuna yerleştirmeniz gerekmediğini unutmayın. C ++ derleyici, dizi başlatılırken dizenin sonuna otomatik olarak '\ 0' yerleştirir.
std :: string
Standart C ++ kitaplığı, çeşitli dize işlemlerini destekleyen dize sınıfını sağlar. Std :: string olarak yazılır.
Bu sınıfı kullanmak için, önce aşağıda gösterildiği gibi #include ön işlemcisini kullanarak onu çalışma alanımıza dahil etmeliyiz:
#include
Ardından, string anahtar kelimesini kullanarak dizgimizi bildirebiliriz. Örneğin:
string name = "John";
Yukarıdaki ifade, John değerini tutmak için ad adında bir dize oluşturacaktır.
Dize Değerlerine Erişim
C ++ 'da, dize adını kullanarak dize değerlerine erişebiliriz. Örneğin:
#includeusing namespace std;int main() {char name[5] = { 'J', 'o', 'h', 'n', '\0' };cout << "String value is: ";cout << name << endl;return 0;}
Çıktı:
İşte kodun bir ekran görüntüsü:
Kod Açıklaması:
- Kodumuza iostream başlık dosyası dahil. Konsoldan okumamıza ve konsola yazmamıza izin verecektir.
- Sınıflarını ve işlevlerini çağırmadan kullanmak için std ad alanını dahil etmek.
- Program mantığının eklenmesi gereken main () işlevini çağırmak. {, Main () işlevinin gövdesinin başlangıcını işaretler.
- Bir karakter dizisi bildirmek ve ona isim vermek. Dize, John değerini saklayacaktır. Fazladan boşluk boş karakteri saklayacaktır.
- Konsolda bazı metinlerin yazdırılması.
- Konsolda isim isimli dizenin değerini yazdırma.
- Program düzgün çalışıyorsa main () işlevi bir değer döndürmelidir.
- Main () işlevinin gövdesinin sonu.
C ++ standart dize sınıfını kullanan başka bir örnek:
#include#include using namespace std;int main() {string name = "Guru99";cout << "The name is : " << name << endl;return 0;}
Çıktı:
İşte kodun bir ekran görüntüsü:
Kod Açıklaması:
- Kodumuza iostream başlık dosyası dahil. Konsoldan okumamıza ve konsola yazmamıza izin verecektir.
- Standart dize sınıfını kodumuza dahil etmek.
- Sınıflarını ve işlevlerini çağırmadan kullanmak için std ad alanını dahil etmek.
- Program mantığının eklenmesi gereken main () işlevini çağırmak. {, Main () işlevinin gövdesinin başlangıcını işaretler.
- Bir dizge bildirmek ve ona isim vermek. Dize, Guru99 değerini saklayacaktır.
- Konsolda bazı metinlerin yanında dize adının değerini yazdırma.
- Program düzgün çalışıyorsa main () işlevi bir değer döndürmelidir.
- Main () işlevinin gövdesinin sonu.
Dize İşlevleri:
Genellikle dizeleri değiştirmek isteyeceksiniz. C ++, bunun için kullanabileceğiniz çok çeşitli işlevler sağlar. Bu işlevler CString sınıfında tanımlanmıştır, bu nedenle işlevleri kullanabilmek için onu kodumuza dahil etmeliyiz. Biraz tartışalım:
strcpy ()
Bu, dizi kopyalama işlevidir. Bir dizeyi başka bir dizeye kopyalar.
Sözdizimi:
strcpy(string1, string2);
İşlevin iki parametresi olan dize1 ve dize2 dizelerdir. İşlev, string1 dizesini 1 dizesine kopyalayacaktır.
strcat ()
Bu, dize bitiştirme işlevidir. Dizeleri birleştirir.
Sözdizimi:
strcat(string1, string2);
İşlevin iki parametresi, dize1 ve dize2, birleştirilecek dizelerdir. Yukarıdaki işlev, dizge2'yi dizge1 dizesinin sonuna birleştirir.
strlen ()
Bu, dizi uzunluğu işlevidir. Bağımsız değişken olarak kendisine iletilen dizenin uzunluğunu döndürür.
Sözdizimi:
strnlen(string1)
String1 parametresi, uzunluğu belirlenecek dizinin adıdır. Yukarıdaki işlev, string1 dizesinin uzunluğunu döndürür.
strcmp ()
Bu, dize karşılaştırma işlevidir. String karşılaştırması için kullanılır.
Sözdizimi:
strcmp(string1, string2);
Yukarıdaki işlev, dize1 ve dize2 dizeleri benzerse 0 döndürür, dize1
Misal:
Aşağıdaki örnek, yukarıdaki dize işlevlerinin nasıl kullanılacağını gösterir:
#include#include using namespace std;int main() {char name1[10] = "Guru99";char name2[10] = "John";char name3[10];int len;strcpy(name3, name1);cout << "strcpy( name3, name1) : " << name3 << endl;strcat(name1, name2);cout << "strcat( name1, name2): " << name1 << endl;len = strlen(name1);cout << "strlen(name1) : " << len << endl;return 0;}
Çıktı:
İşte kodun bir ekran görüntüsü:
Kod Açıklaması:
- Kodumuza iostream başlık dosyası dahil. Konsoldan okumamıza ve konsola yazmamıza izin verecektir.
- Standart CString sınıfını kodumuza dahil ediyoruz.
- Sınıflarını ve işlevlerini çağırmadan kullanmak için std ad alanını dahil etmek.
- Program mantığının eklenmesi gereken main () işlevini çağırmak. {, Main () işlevinin gövdesinin başlangıcını işaretler.
- 10 karakterlik bir dizi bildirmek ve ona isim vermek 1. Dize, Guru99 değerini saklayacaktır.
- 10 karakterlik bir dizi bildirmek ve ona isim vermek 2. Dize, John değerini saklayacaktır.
- 10 karakterlik bir dizi bildirmek ve ona isim vermek 3.
- Len adlı bir tamsayı değişkeni bildiriliyor.
- Name1 dizesinin name3 dizesine kopyalanması.
- Konsolda bir metinle birlikte isim1 dizesinin değeri yazdırılıyor. Guru99 yazdırmalıdır.
- Name2 dizelerini isim1 dizesinin sonuna birleştirmek. Name1'in değeri artık Guru99John'dur.
- Konsolda bir metinle birlikte isim1 dizesinin değeri yazdırılıyor. Guru99John yazdırmalıdır
- İsim1 isimli dizgenin uzunluğunun belirlenmesi ve uzunluk değerinin uzunluk değişkenine atanması.
- Konsolda başka bir metinle birlikte len değişkeninin değerinin yazdırılması.
- Program düzgün çalışıyorsa main () işlevi bir değer döndürmelidir.
- Main () işlevinin gövdesinin sonu.
Özet
- Bir dize, bir karakter dizisidir.
- Dizeler, C ++ 'daki standart dize sınıfına aittir.
- Dizeleri C-tarzı karakter dizesi veya standart dizge sınıfını kullanarak bildirebiliriz.
- Strcpy () işlevi bir dizeyi diğerine kopyalar.
- Strcat () işlevi iki işlevi birleştirir.
- Strlen () işlevi, bir işlevin uzunluğunu döndürür.
- Strcmp () işlevi iki dizeyi karşılaştırır.