c character conversion functions
Bu Öğretici, Bir Karakterin Tamsayıya Dönüştürülmesi veya Dize ve Karakter Dizisinin Kod Örnekleriyle Dizeye Dönüştürülmesi gibi C ++ Karakter Dönüştürme İşlevlerini kapsar:
C ++ 'da birçok türü içeren uygulamalar geliştirdikçe, bir türden diğerine dönüştürmek gerekli hale gelir. Daha önceki eğitimlerimizde birkaç temel tür dönüşümü gördük.
Ayrıca dize dönüşümlerini ve sayısal türlerin dizelere dönüşümünü de gördük. Daha önce gördüğümüz dizi dönüştürme işlevlerinden ayrı olarak, bir karakteri diğer veri türlerine dönüştürmek için kullanılan birkaç işlev vardır.
Bunlar, tek bir karakter veya bir karakter dizisi alan ve daha sonra bunları diğer veri türlerine dönüştüren işlevlerdir.
=> Kolay C ++ Eğitim Serisini Okuyun.
Ne öğreneceksin:
- C ++ Karakter Dönüştürme İşlevleri
- Sonuç
C ++ Karakter Dönüştürme İşlevleri
Tam sayıya veya dizeye tek karakter dönüşümü ve karakter dizisinin dizeye dönüştürülmesi söz konusu olduğunda, dönüştürme işlevleri dizge dönüştürme işlevlerinden biraz farklıdır.
kalite güvence testi soruları ve cevapları
Bu eğitimde aşağıdaki dönüşümleri tartışacağız:
- Karakterin Tamsayıya Dönüştürülmesi (char'dan int C ++ 'ya)
- Karakterin Dizeye Dönüştürülmesi (karakter dizgesine C ++)
- Karakter Dizisinin Dizeye Dönüştürülmesi
İlk iki dönüşüm tek bir karakterle ilgilenirken, son dönüşüm karakter dizisini içerir.
Karakteri Tamsayıya Dönüştür - char'ı int'e
Tek bir karakteri tam sayı türüne dönüştürmek için aşağıda belirtildiği gibi iki yöntemimiz vardır:
# 1) Yayınlayarak
Tek bir karakteri tamsayı eşdeğerine dönüştürmek için döküm işlemini kullanabiliriz. Bu durumda, karakterin ASCII eşdeğeri görüntülenecektir.
Aşağıdaki dönüşümü düşünün,
char a = 'A'; int num = (int) a;
Bu durumda, 'num', 'A' karakterinin ASCII eşdeğeri olan 65 değerine sahip olacaktır.
Alternatif olarak, bir sayı karakterini tam sayı değerine dönüştürmek istiyorsak aşağıdaki işlemi kullanabiliriz.
char a = '2'; int num = a-48;
Burada 48, 0'ın ASCII değeridir. Burada yapılan, ikinci satır a-48'in char a'yı ASCII eşdeğerine örtük olarak dönüştürmesi ve ardından onu 48'den (50-48) çıkararak tamsayı değeri 2'dir.
# 2) Stringstream'i kullanma
Dize dönüştürme işlevleriyle ilgili öğreticide daha önce görüldüğü gibi, bir dizgi akımı nesnesi olarak temsil edilen tek bir karakteri bir tam sayıya veya herhangi bir sayısal değere dönüştürebiliriz.
Aşağıda bunu gösteren bir kod verilmiştir.
#include #include #include using namespace std; int main() { stringstream str; str <> x; cout<<'Converted value of character 5 :'< Çıktı:
5: 5 karakterinin dönüştürülmüş değeri
Karakteri Dizeye Dönüştür - karakterden dizeye
Tek bir karakteri dizgeye dönüştürebileceğimiz çeşitli yollar vardır.
Bu yöntemlerden bazılarını tartışalım.
# 1) Dize Sınıfı Tarafından Sağlanan Bir Oluşturucu Kullanma.
İşlev Prototipi: string s (int n, char x);
Parametreler:
n => Oluşturulacak dizenin boyutu.
x => Bir dizeye dönüştürülecek karakter.
Dönüş Değeri: s karakter dönüşümü ile elde edilen tring.
Açıklama: String sınıfının yapıcısı, dizenin uzunluğunu (n) ve parametre olarak tek bir karakteri alır ve ardından karakteri dizeye dönüştürür.
Aşağıda, tek bir karakterin dizeye dönüştürülmesini gösteren basit bir örnek verilmiştir.
#include #include using namespace std; int main() { string str(1,'A'); cout<<'The string obtained by converting single character : '< Çıktı:
Tek karakterin dönüştürülmesiyle elde edilen dize: A
Yukarıdaki dönüşüm basittir. Dize kurucusunu çağırır ve dizenin uzunluğunu (ilk parametre) 1 olarak belirtiriz çünkü tek bir karakteri dönüştürüyoruz ve ikinci parametre dizeye dönüştürülecek karakterdir (bu durumda 'A').
# 2) std :: string Operator = Ve + = kullanma
Std :: string sınıfı operatörleri, = ve + = karakterler için aşırı yüklenmiştir. Yani bu operatörleri tek bir karakteri dizeye dönüştürmek için kullanabiliriz.
Bu, aşağıda gösterilen programda gösterilmiştir.
#include #include using namespace std; int main() { string str; char c = 'B'; str = 'C'; str += c; cout<<'The string obtained by converting single character : '< Çıktı:
Tek karakter dönüştürülerek elde edilen dize: CB
Bu programda, hem aşırı yüklenmiş operatörleri, = ve + = kullandık. Bir dizge nesnesi bildirdik ve sonra = işlecini kullanarak ona bir karakter atadık. Daha sonra + = operatörünü kullanırız ve string nesnesine başka bir karakter atarız.
Karakterin ikinci kez gerçekten dizge nesnesindeki zaten var olan içeriklerle birleştirildiğini görüyoruz.
# 3) std :: string'in Çeşitli Yöntemlerini Kullanma
std :: string sınıfı, sonunda karakteri dizeye dönüştüren bir karakteri dizeye geçirebileceğimiz çeşitli aşırı yüklenmiş yöntemleri destekler.
Std :: string sınıfının bazı metotları:
- Geri itmek
İşlev Prototipi: void push_back (karakter c)
Parametreler: c => Dizeye atanacak karakter
Geri dönüş değeri: geçersiz döndürür
Açıklama: Bu işlev, karakterler için aşırı yüklenmiştir ve dizenin sonuna bir karakter atar.
- eklemek
İşlev Prototipi: string & append (size_t n, char c)
Parametreler:
n => Karakterin ekleneceği sayı.
c => Dizeye eklenecek karakter.
Geri dönüş değeri: Karakterin dönüştürülmesiyle elde edilen dizge.
Açıklama: Std :: string işlevinin eklenmesi iki argüman alır. İlk argüman, karakterin dizeye kaç kez kopyalanacağıdır. İkinci argüman, kopyalanacak gerçek karakterdir. Dolayısıyla, append işlevi bu karakter kopyalarını ilk bağımsız değişkende belirtildiği gibi dizeye atayacaktır.
- atamak
İşlev Prototipi: dize & atama (boyut_t n, karakter c);
Parametreler:
n => Karakterin kopya sayısı.
c => Dizeye kopyalanacak karakter.
Geri dönüş değeri: Karakterin dönüştürülmesiyle elde edilen dizge.
Açıklama: Assign işlevi, geçerli dizge içeriğini, karakterin n (birinci bağımsız değişken) kopyasıyla (ikinci bağımsız değişken) değiştirir.
- eklemek
İşlev Prototipi: string & insert (boyut_t konum, boyut_t n, karakter c);
Parametreler:
pos => Karakterlerin ekleneceği baştaki konum.
n => Karakterin kopya sayısı.
c => Dizeye eklenecek karakter.
Geri dönüş değeri: Karakterin dönüştürülmesiyle elde edilen dizge.
Açıklama: Bu işlev, pos (birinci bağımsız değişken) ile belirtilen dizenin başlangıç konumuna n (ikinci bağımsız değişken) karakter kopyası (üçüncü bağımsız değişken) ekler.
Daha sonra, std :: string sınıfının yukarıdaki tüm işlevlerini gösteren bir program geliştireceğiz.
#include #include using namespace std; int main() { string str; str.push_back('A'); cout<<'push_back single character : '< Çıktı:
push_back tek karakter: A
tek karakter ekleyin: C
tek karakter atayın: D
tek karakter girin: BD
Yukarıdaki program, geri itme, ekleme, atama ve ekleme işlevlerini gösterir. Çıktı, sonucu veya her işlevin döndürdüğü dizeyi gösterir.
# 4) Std :: stringstream kullanma
Sayısal türlerin dizi akışı kullanılarak bir dizgeye dönüştürülmesini daha önce tartışmıştık. Karakterin bir dizgeye dönüştürülmesi de bir dizge akımı sınıfı kullanıldığında aynı ilkeyi izler.
Verilen karakter akışa eklenir ve ardından içerik dizeye yazılır.
Bunu bir C ++ programı kullanarak netleştirelim.
#include #include #include using namespace std; int main() { string str; stringstream mystr; mystr<>str; cout<<'The string obtained by converting single character : '< Çıktı:
Tek bir karakterin dönüştürülmesiyle elde edilen dize: A
Önce karakteri akım nesnesine ekleriz ve sonra bu tampon string nesnesine yazılır. Böylece programın çıktısı tek bir karakter olan string nesnesinin içeriğini gösterir.
Karakter Dizisini Dizeye Dönüştür
Std :: string sınıfı, karakter dizileriyle uğraşırken kullanışlı olabilecek birçok yönteme sahiptir. Bu nedenle, karakter dizilerini dizgi nesnelerine dönüştürmeniz ve sonra bunları kullanmanız tavsiye edilir, böylece verimli programlar yazabiliriz.
Aşağıda gösterildiği gibi karakter dizisini bir dizeye dönüştürmenin iki yöntemi vardır.
# 1) String Constructor'ı Kullanma
Tek bir karakteri dizeye dönüştürmek için daha önce tartışıldığı gibi, bir karakter dizisini dizeye dönüştürmek için dize yapıcısını kullanabiliriz.
İşlev prototipi: dizge (sabit karakter * s);
Parametreler: s => dizgeye dönüştürülecek boş sonlu karakter dizisi
Geri dönüş değeri: string => dönüştürülmüş dize
Açıklama: Std :: string sınıfının bu aşırı yüklenmiş yapıcısı, karakter dizisini veya C-dizesini argüman olarak alır ve dizeyi döndürür.
Aşağıdaki program bu dönüşümü göstermektedir.
#include #include using namespace std; int main() { char myarray() = {'Software Testing Help'}; string mystr(myarray); cout<<'Converted string: '< Çıktı:
Dönüştürülen dize: Yazılım Test Yardımı
Yukarıdaki program oldukça basit. Tek gereken, verilen karakter dizisini dizeye dönüştürmek için std :: string yapıcısına yapılan tek bir çağrıdır.
# 2) Kullanım = Aşırı Yüklenmiş Operatör
Karakter dizisini dize nesnesine dönüştürmenin başka bir yolu, aşırı yüklenmiş bir operatör = kullanmaktır. Bunda, = operatörünü kullanarak karakter dizisini dize nesnesine doğrudan atayabiliriz ve içerikler dizeye aktarılır.
Aşağıdaki örnek bunu göstermektedir.
#include #include using namespace std; int main() { char myarray() = {'Software Testing Help'}; string mystr; mystr = myarray; cout<<'Converted string: '< Çıktı:
Dönüştürülen dize: Yazılım Test Yardımı
Yukarıdaki program, karakter dizisinin içeriğinin dize nesnesine kopyalanmasıyla sonuçlanan = operatörünü kullanarak diziyi doğrudan bir dizgi nesnesine atar.
Sonuç
Tek bir karakteri ve karakter dizilerini dize nesnelerine dönüştürmek için çeşitli yöntemler gördük. Std :: string sınıfı, dizeleri verimli bir şekilde değiştirmemize izin veren birçok işleve sahip olduğundan, önce onu dizelere dönüştürerek karakter verileriyle çalışmak her zaman yararlıdır.
Daha fazla okuma = >> Java'da Char'ı Int'e Dönüştür
Daha fazla okuma = >> Java'da Char'ı Dizeye Dönüştür
Karakter verilerini dizelere dönüştürmek için sınıf yöntemlerini de kullanabiliriz. Bunda, önce verileri akımın içine yerleştiriyoruz ve sonra bu tamponu bir string nesnesine yazıyoruz.
Sonraki eğitimlerimizde, bir dizi akışı sınıfını ve C ++ 'da daha fazla kitaplık işlevini ayrıntılı olarak tartışacağız.
=> C ++ Eğitim Öğreticilerinin A-Z'sini Görmek İçin Burayı Kontrol Edin.
Önerilen Kaynaklar
- Python Dizesi İşlevleri
- String Buffer ve String Builder Eğitimi ile Java String
- C ++ Karakter Sınıflandırma ve Dönüştürme İşlevleri
- VBScript Dize İşlevleri: VBScript inStr, Replace, Mid ve Trim İşlevleri
- Python String Split Eğitimi
- C # Dize Eğitimi - Kod Örnekleriyle Dize Yöntemleri
- Örneklerle C ++ 'da Dizeler
- C ++ 'da Kitaplık İşlevleri