string functions c
Bu Eğitimde, getline alt dizesi, dizge uzunluğu, dizge bulma, bölünmüş dizge vb. Gibi C ++ 'daki Popüler Dizge İşlevlerinden bazılarını tartışacağız:
C ++, dizeler olarak da bilinen bir dizi karakter için kullanılan bir dize sınıfına sahiptir. Bu sınıf std :: string . Bu sınıf, dizeleri bir karakter bayt dizisi olarak depolar ve dizeleri işlememize, erişmemize ve okumamıza, ayrıca tek karakterlere erişmemize ve işlememize izin veren işlevler sağlar.
sıralama uygulaması birleştirme c ++
=> Uzmanlardan Tam C ++ Kursu İçin Burayı Ziyaret Edin.
Ne öğreneceksin:
C ++ Dize İşlevleri
C ++ dizesi bir karakter dizisidir. C ++ 'da dizeleri tanımladığımızda, bir dizge kullanırız
std :: string sınıfından başka bir şey olmayan anahtar kelime. Bu dizge sınıfı, dizi nesneleri üzerinde farklı işlemler gerçekleştiren bir dizeyi okumaktan, bir dizgeye erişmekten, vb. Çeşitli işlevleri destekler. Sık kullanılan bazı işlevler aşağıda listelenmiştir.
| Hayır | Dize fonksiyonları | Açıklama |
|---|---|---|
| bir | hat almak | Akıştan dizeye satırı alır |
| iki | substr | Belirli bir dizenin alt dizesini alın |
| 4 | Uzunluk, gergin | Dizenin uzunluğunu alın |
| 5 | Bul | Dizideki içeriği bul |
| 6 | Strtok, sınırlayıcılı substr | Dizeyi belirteçlerde böl |
getline C ++
İşlev Prototipi: istream & getline (istream & is, string & str)
Parametreler: is => karakterlerin çıkarıldığı bir istream nesnesi.
str => Ayıklanmış karakteri saklamak için kullanılan string nesnesi.
Geri dönüş değeri: Dönüş değeri istream ile aynıdır. Getline'ın çalıştırılması dahili olarak bazı iç bayrakları aşağıdaki gibi ayarlar.
| bayrak | Hata tanımlaması |
|---|---|
| eofbit | Karakter kaynağının sonuna ulaşıldı |
| başarısız bit | Giriş, bu türdeki nesnenin geçerli bir metinsel temsili olarak yorumlanamaz |
| badbit | Yukarıdaki ikisi dışında herhangi bir hata |
Açıklama: getline standart bir kitaplık işlevidir. Bu işlev, istream gibi standart bir giriş akışından bir satırı veya dizeyi okumak için kullanılır. Çizgiler veya dizgiler, sınırlama karakteri olarak kabul edilen ' n' ile karşılaşılıncaya kadar okunur.
Getline'ın farklı bir versiyonu olarak, üçüncü bir parametre “karakter sınırlaması” belirtilebilir. Bu, açıkça belirtilen bir sınırlayıcı karakterdir. Bu işlevde, belirtilen ayırıcı karakterle karşılaşılıncaya kadar bir metin satırı veya dize okunacaktır.
Aşağıda, getline'ın kullanımını göstermek için basit bir örnek verilmiştir.
Misal:
#include #include using namespace std; int main() { string mystr; cout<<'Enter the input string:'< Çıktı:
Giriş dizesini girin:
C ++ öğreticileri
Girdiniz: C ++ öğreticileri

Yukarıdaki örnekte, getline işlevini kullanarak bir girdi dizesi okuyoruz. Girilen dizelerin veya metnin, ' n' ile karşılaşılıncaya kadar mystr dize nesnesine okunduğunu unutmayın.
C ++ Alt Dizesi
İşlev Prototipi: string substr (size_t startpos, size_t endpos)
Parametreler: startpos => Alt dizenin çıkarılacağı yerden başlangıç konumu.
endpos => Alt dizenin son konumu.
Geri dönüş değeri: Ana dizenin alt dizesi olan bir dize döndürür.
Açıklama: Bu işlev, belirli bir dizenin alt dizesini döndürür. İşlev, başlangıç ve bitiş konumlarını parametre olarak alır ve ardından bu konumlar arasındaki karakter sırasını döndürür.
Misal:
#include #include using namespace std; int main() { string mystr = 'SoftwareTestingHelp'; string mysub = mystr.substr(0,8); cout<<'Input string : '< Çıktı:
Giriş dizesi: SoftwareTestingHelp
Substring (0,8): Yazılım

C ++ Uzunluğu
Dizenin uzunluğu, dizede bulunan karakterlerin sayısıdır. C ++ 'da dizelerin std :: string nesne temsili, dizenin uzunluğunu döndürmek için length () işlevlerini kullanır.
Bunun dışında, dizenin boyutunu döndüren bir boyut yöntemimiz de var. Length () işlevi için aşağıda gösterilen örnekte size yöntemini kullandık. Dizenin uzunluğunu döndüren başka bir işlev de 'strlen' dir. Bu işlev, bir karakter dizisi ile gösterilen dizenin uzunluğunu döndürür.
Her iki işlevi de örneklerle tek tek göreceğiz.
uzunluk ()
İşlev Prototipi: size_t uzunluk ()
Parametreler: Uzunluğu bulunacak dizge tarafından çağrılır.
Geri dönüş değeri: Dizenin uzunluğu olan size_t tür parametresini döndürür.
Açıklama: Bu işlev çağrıldığı dizge nesnesinin uzunluğunu bulur.
Misal:
#include #include using namespace std; int main() { string mystr = 'SoftwareTestingHelp'; cout<<'Input string : '< Çıktı:
Giriş dizesi: SoftwareTestingHelp
Dizenin uzunluğu (uzunluk yöntemiyle): 19
Dizenin boyutu (boyut yöntemiyle): 19

Yukarıdaki programda, sırasıyla string nesnesinin uzunluğunu ve boyutunu döndüren std :: string'in uzunluk ve boyut fonksiyonlarını kullanıyoruz. Uzunluk ve boyut dizedeki karakter sayısını döndürdüğünde, aynı çıktıyı elde ederiz.
strlen ()
İşlev Prototipi: size_t strlen (const char * str);
Parametreler: str => Uzunluğu bulunacak boş sonlu bir dizgeye işaretçi.
Dönüş Değeri: R str dizesinin uzunluğunu belirten size_t değerini döndürür.
Açıklama: strlen () işlevi boş sonlandırılmış dizenin uzunluğunu döndürür. Strlen işlevi tarafından bir parametre olarak alınan dize, boş sonlu bir karakter dizisidir.
Misal:
c ++ 'da normal ifadeler
#include #include using namespace std; int main() { char mystr1() = 'This a our first string'; char mystr2() = 'This is our second string'; int len_mystr1 = strlen(mystr1); int len_mystr2 = strlen(mystr2); cout << 'Length of mystr1 = ' << len_mystr1 << endl; cout << 'Length of mystr2 = ' << len_mystr2 << endl; if (len_mystr1> len_mystr2) cout << 'mystr1 is longer than mystr2'; else if (len_mystr1 < len_mystr2) cout << 'mystr2 is longer than mystr1'; else cout << 'mystr1 and mystr2 are equal in length'; return 0; } Çıktı:
Mystr1 = 23 uzunluğu
Mystr2 uzunluğu = 25
mystr2, mystr1'den daha uzun

Yukarıdaki programda, iki farklı dizge tanımladık ve strlen fonksiyonunu kullanarak bunların bireysel uzunluklarını bulduk. Sonra iki dizginin uzunluğunu karşılaştırır ve dizelerin eşit olup olmadığını belirleriz.
C ++ Bul
İşlev Prototipi: size_t find (string mysub)
Parametreler: mysub => Üst dizenin içinde bulunacak dizge nesnesi.
Geri dönüş değeri: size_t => Alt dizenin üst dizedeki ilk konumu
Açıklama: Dizenin bulma işlevi, alt dizenin ana dizedeki konumunu bulmak için kullanılır. Bu işlev, ana dizge tarafından çağrılır ve konumu bulunacak bir alt dizge bir parametre olarak iletilir. Alt dize yoksa, boş bir konum döndürülür.
Misal:
#include #include using namespace std; int main() { string mystr = 'SoftwareTestingHelp'; string mysub = 'Test'; size_t pos = mystr.find(mysub); if (pos != string::npos) cout << 'First occurrence of string '< Çıktı:
String Testinin ilk oluşumu: 8
Dize Yardımının ilk oluşumu: 15

Bu program bir dizeyi 'SoftwareTestingHelp' olarak tanımlar. Find işlevini kullanarak, üst dizede 'Test' dizesinin ilk oluşumunu buluruz. Sonra, 'Yardım' dizesinin geçtiğini buluyoruz. Çıktı, aranan dizenin oluşumunun konumudur.
Dize Böl
Bir dizeyi bir sınırlayıcı veya belirteç kullanarak bölmek yararlı bir işlemdir. C ++ 'da, dizelerin birden fazla temsiline sahip olduğumuz için, bir dizeyi bölmek için farklı yaklaşımlar kullanabiliriz. Burada, bir dizgiyi bölmek için iki yaklaşımı tartışacağız.
Std :: string nesnesini bölme
Bir dize nesnesini bölmenin en kolay yolu, nesne üzerinde 'substr' işlevini kullanmak ve alt dizeyi elde etmemiz için sınırlayıcıyı son konum olarak sağlamaktır. Bu şekilde, tüm dizeyi geçene kadar sınırlayıcıdaki dizeyi bölebiliriz.
Öncelikle 'bul' işlevini kullanarak sınırlayıcının konumunu bulan ve ardından alt dizeyi bulan ve son olarak her bir jetonu çıkaran aşağıdaki örneğe bakalım.
#include #include using namespace std; int main() { string mystr = 'This_is_software_testing_help'; string delimiter = '_'; size_t pos = 0; string token; while ((pos = mystr.find(delimiter)) != std::string::npos) { token = mystr.substr(0, pos); cout << token << endl; mystr.erase(0, pos + delimiter.length()); } cout << mystr<< endl; } Çıktı:
Bu
dır-dir
yazılım
test yapmak
Yardım

Yukarıdaki programda gösterildiği gibi, verilen dizeyi bölmek için kullanılacak bir sınırlayıcı belirtiyoruz. Bir döngüde, bul işlevini kullanarak sınırlayıcı oluşumunu tekrar tekrar bulur ve onu substr işlevine iletir ve alt dizeyi alırız. Daha sonra elde edilen bu belirteçlerin her biri çıktı olarak görüntülenir.
Strtok İşlevini Kullanarak Karakter Dizisini Bölme
Bir dizgeyi belirtmenin başka bir yolu (dizeyi bir sınırlayıcı kullanarak bölmek) 'strtok' işlevini kullanmaktır. Aşağıda 'strtok' işlevinin özelliklerini tartışacağız.
İşlev Prototipi: char * strtok (char str (), const char * delim)
Parametreler: str () => Bölünecek dize.
Sınır => Dizenin bölüneceği sınırlayıcı.
Geri dönüş değeri: Ana dizeyi böldükten sonra sonraki belirteci döndürür.
Açıklama: Strtok işlevi, verilen dizeyi, verilen sınırlayıcılarda belirteçlere böler. Belirli bir dizge için tüm jetonları alabilmemiz için bu işlevin bir döngü içinde çağrılması gerekir. Daha fazla simge kalmadığında, işlev null döndürür.
Misal:
#include #include using namespace std; int main() { char mystr() = 'This_is_software_testing_help'; char *token = strtok(mystr, '_'); while (token != NULL) { cout< Çıktı:
Bu
dır-dir
yazılım
test yapmak
Yardım
iş analisti teknik mülakat soruları ve cevapları

Bu programda, argümanlar olarak bir dizge ve sınırlayıcı alan strtok işlevini kullandığımıza dikkat edin. Ardından, dizeyi belirtilen sınırlayıcıya göre belirteçlere böler ve tek tek simgeleri görüntüler.
Sonuç
Bu öğreticide C ++ dizeleri için kullanılan genel önemli işlevlerden bazılarını gördük.
Bir girdi dizgesini okumak, bir dizge bulmak, ana dizenin alt dizesi, dizginin uzunluğu, bir dizgiyi bölmek vb. İşlevlerini varyasyonları ile birlikte tartıştık. Bu işlevler, dizeleri verimli bir şekilde okumamıza ve değiştirmemize yardımcı olur.
Bir sonraki eğitimimizde, C ++ dizesi ile kullanılan bazı dönüştürme işlevlerini ayrıntılı olarak göreceğiz.
=> Tüm C ++ Eğitim Serisini Herkes İçin Görmek İçin Burayı Ziyaret Edin.
Önerilen Kaynaklar
- Python Dizesi İşlevleri
- String Buffer ve String Builder Eğitimi ile Java String
- C ++ Karakter Dönüştürme İşlevleri: char'dan int'e, char'dan dizeye
- VBScript Dize İşlevleri: VBScript inStr, Replace, Mid ve Trim İşlevleri
- Python String Split Eğitimi
- C # Dize Eğitimi - Kod Örnekleriyle Dize Yöntemleri
- Python İşlevleri
- Dize Dizisi C ++: Örneklerle Uygulama ve Temsil






