std::string ve C Tarzı Karakter Dizileri
Modern std::string'i eski, null sonlandırmalı karakter dizileriyle karşılaştırın ve her birini ne zaman kullanacağınıza karar verin.
std::string ve C Tarzı Karakter Dizileri, CoddyKit'te ücretsiz bir C++ Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, C++ Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. C++ Academy kursu toplamda 4 dersten oluşur.
Metin Tutmanın İki Yolu
C++, C tarzı dizeleri — null ile sonlandırılan char dizilerini — devralır ve standart kitaplıktan std::string ekler. Neredeyse her zaman std::string kullanın.
C Tarzı Dizeler
C tarzı bir dize, null bayt '\0' ile biten bir char dizisidir. strlen gibi işlevler null karakteri bulana kadar dizide ilerler.
const char* greeting = "Hello";
// Memory: H, e, l, l, o, \0 (6 bytes)
#include <cstring>
std::cout << std::strlen(greeting); // 5std::string
std::string kendi belleğini yönetir ve gerektiğinde büyür. Onu diğer tüm türler gibi oluşturun.
#include <string>
std::string name = "Ada";
name += " Lovelace";
std::cout << name; // Ada LovelaceBoyut ve Uzunluk
std::string::size() ve length() eş anlamlıdır ve karakter sayısını döndürür (null sonlandırıcı dahil değildir).
std::string s = "hello";
std::cout << s.size(); // 5
std::cout << s.length(); // 5Dizinle Erişim
[] veya at() ile karakterleri okuyun ya da yazın. []'den farklı olarak at(), dizin aralık dışındaysa istisna fırlatır.
std::string s = "cat";
char first = s[0]; // 'c'
char last = s.at(2); // 't'
// s.at(10) throws std::out_of_rangeBoş Dizeler
size() == 0 yerine empty() kullanın. Daha anlaşılır ve aynı ölçüde hızlıdır.
const char* Ne Zaman Kullanılmalı
C tarzı bir dizeyi şu durumlarda kullanın:
- C kitaplıklarıyla veya işletim sistemi API'leriyle arayüz oluştururken
- Hiç değişmeyen dize sabitleriyle çalışırken
- Standart kitaplığın kullanılamadığı gömülü sistemlerde
Aralarında Dönüşüm Yapma
std::string değerinden .c_str() ile bir C dizesi alın. Bir const char* değerinden doğrudan std::string oluşturun.
std::string s = "Hello";
const char* c = s.c_str();
const char* literal = "world";
std::string s2(literal);Dize Sabitleri const char[] Türündedir
"hi" gibi bir dize sabitinin türü const char[3]'tür (null sonlandırıcı dahil). Salt okunur bellekte bulunur.
Ham Dize Sabitleri
Kaçış karakterlerinin işlenmesini atlamak için R"(...)" ön ekini kullanın. Düzenli ifade kalıpları ve dosya yolları için kullanışlıdır.
std::string regex = R"(\d+\.\d{2})";
std::string path = R"(C:\Users\Ada)";std::string Üzerinde Yineleme
Dizeler kapsayıcılardır. Aralık tabanlı bir for döngüsü, dizinler veya yineleyicilerle üzerlerinde yineleme yapın.
std::string s = "abc";
for (char c : s) std::cout << c << " "; // a b cHızlı Kontrol
Dizin aralık dışındaysa std::string yöntemlerinden hangisi istisna fırlatır?
Özet
Yönetilen metin için std::string'i tercih edin. Sabitler ve C API'leriyle birlikte çalışabilirlik için const char* kullanın. .c_str() ve doğrudan oluşturma ile aralarında dönüşüm yapın.
Sıkça Sorulan Sorular
“std::string ve C Tarzı Karakter Dizileri” dersi ücretsiz mi?
Evet — “std::string ve C Tarzı Karakter Dizileri” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve C++ Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. C++ Academy kursu toplamda 4 dersten oluşur.
“std::string ve C Tarzı Karakter Dizileri” dersinde ne öğreneceğim?
Modern std::string'i eski, null sonlandırmalı karakter dizileriyle karşılaştırın ve her birini ne zaman kullanacağınıza karar verin. C++ Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
C++ Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te C++ Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“std::string ve C Tarzı Karakter Dizileri” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu C++ Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her C++ Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- std::string ve C Tarzı Karakter Dizileri
- Dize İşlemleri: Birleştirme, Alt Dize, Bulma, Değiştirme
- Ayrıştırma için Dize Akışı stringstream
- Dize Dönüşümleri: to_string ve stoi