Dize Dönüşümleri: to_string ve stoi
std::to_string, std::stoi ve std::stod ile dizeler ve sayısal türler arasında güvenle dönüşüm yapın.
Dize Dönüşümleri: to_string ve stoi, CoddyKit'te ücretsiz bir C++ Academy dersidir. Bu, 4 dersinin 4. 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.
Dize Dönüştürmeleri Neden Önemlidir?
Kullanıcı girdisi, yapılandırma dosyaları, JSON, URL'ler ve günlükler için sayılarla metin arasında sürekli dönüştürme yapmanız gerekir.
std::to_string
std::to_string, yerleşik tüm sayısal türleri bir dizeye dönüştürür. Varsayılan biçimlendirmeyi kullanır.
#include <string>
std::string a = std::to_string(42); // "42"
std::string b = std::to_string(-7); // "-7"
std::string c = std::to_string(3.14); // "3.140000"Varsayılan Ondalık Biçimlendirme
Bir double üzerinde to_string kullanıldığında altı ondalık basamak kullanılır. Kesin denetim için std::fixed ve std::setprecision ile std::stringstream veya C++20'de std::format kullanın.
std::stoi: Diziden int'e
std::stoi ile bir tam sayı ayrıştırın. Baştaki boşluk karakterlerini atlar ve ilk rakam olmayan karakterde durur.
int n = std::stoi("42"); // 42
int m = std::stoi(" -7abc"); // -7 (stops at 'a')Son Konumu Okuma
Ayrıştırmanın durduğu dizini almak için bir işaretçi geçirin; bu, karma dize biçimlerini ayrıştırmak için kullanışlıdır.
std::string s = "42px";
size_t pos;
int n = std::stoi(s, &pos);
std::cout << pos; // 2 (parsed "42", stopped at 'p')Stoi Hatalı Girdide İstisna Fırlatır
Hiç rakam bulunamazsa stoi, std::invalid_argument fırlatır. Sayı taşarsa std::out_of_range fırlatır.
try {
int x = std::stoi("not_a_number");
} catch (const std::invalid_argument& e) {
std::cout << "Parse failed";
}Taban Dönüştürmeleri
Üçüncü bağımsız değişken tabanı seçer (2-36). Önekten otomatik algılama için 0 geçirin.
int hex = std::stoi("ff", nullptr, 16); // 255
int bin = std::stoi("1010", nullptr, 2); // 10
int auto_detect = std::stoi("0xff", nullptr, 0); // 255stol stoll stoul stoull
Diğer tam sayı türleri için kullanılan türevler:
std::stol— longstd::stoll— long longstd::stoul— unsigned longstd::stoull— unsigned long long
stof stod stold
float, double ve long double için kayan noktalı türevler.
double d = std::stod("3.14159");
float f = std::stof("2.71");C++17 std::from_chars: İstisna Fırlatmaz
std::from_chars istisna fırlatmadan ayrıştırma yapar. ec (hata kodu) ve ptr (ayrıştırmanın bittiği konum) içeren bir yapı döndürür; yoğun döngülerde tercih edilir.
#include <charconv>
std::string s = "42";
int val;
auto result = std::from_chars(s.data(), s.data() + s.size(), val);
if (result.ec == std::errc{}) {
// success
}C++17 std::to_chars: Bellek Ayırmaz
from_chars'ın tersidir: bellek ayırmadan bir sayıyı arabelleğe yazar. Standart kitaplıkta bulunan en hızlı dönüştürmedir.
Hızlı Kontrol
std::stoi("abc") hangi istisnayı fırlatır?
Özet
std::to_string sayıları dizelere dönüştürür; std::stoi ve benzerleri dizeleri sayılara ayrıştırır. Her ikisi de başarısızlıkta istisna fırlatır; noexcept ve yüksek performanslı ayrıştırma için std::from_chars kullanın.
Sıkça Sorulan Sorular
“Dize Dönüşümleri: to_string ve stoi” dersi ücretsiz mi?
Evet — “Dize Dönüşümleri: to_string ve stoi” 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.
“Dize Dönüşümleri: to_string ve stoi” dersinde ne öğreneceğim?
std::to_string, std::stoi ve std::stod ile dizeler ve sayısal türler arasında güvenle dönüşüm yapın. 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 4. dersidir.
“Dize Dönüşümleri: to_string ve stoi” 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