Konversi String: to_string dan stoi
Konversikan string dan tipe numerik dengan aman menggunakan std::to_string, std::stoi, dan std::stod.
Konversi String: to_string dan stoi adalah pelajaran C++ Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C++ Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C++ Academy mencakup 4 pelajaran total.
Mengapa Konversi String Penting
Anda akan sering perlu mengonversi angka dan teks — untuk masukan pengguna, berkas konfigurasi, JSON, URL, dan pencatatan.
std::to_string
std::to_string mengonversi semua tipe numerik bawaan menjadi string. Fungsi ini menggunakan pemformatan bawaan.
#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"Pemformatan Float Bawaan
to_string pada double menggunakan enam angka di belakang koma. Untuk mengendalikannya secara tepat, gunakan std::stringstream dengan std::fixed dan std::setprecision, atau std::format dalam C++20.
std::stoi: String Menjadi int
Uraikan bilangan bulat dengan std::stoi. Fungsi ini melewati spasi kosong di awal dan berhenti pada digit pertama yang bukan angka.
int n = std::stoi("42"); // 42
int m = std::stoi(" -7abc"); // -7 (stops at 'a')Membaca Posisi Akhir
Berikan penunjuk untuk menerima indeks tempat penguraian berhenti — berguna untuk mengurai string campuran.
std::string s = "42px";
size_t pos;
int n = std::stoi(s, &pos);
std::cout << pos; // 2 (parsed "42", stopped at 'p')Stoi Melempar Pengecualian untuk Masukan yang Salah
Jika tidak ada digit yang ditemukan, stoi melempar std::invalid_argument. Jika angka melampaui batas, fungsi tersebut melempar std::out_of_range.
try {
int x = std::stoi("not_a_number");
} catch (const std::invalid_argument& e) {
std::cout << "Parse failed";
}Konversi Basis
Argumen ketiga memilih basis (2–36). Berikan 0 untuk mendeteksi basis secara otomatis dari awalan.
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
Varian untuk tipe bilangan bulat lainnya:
std::stol— longstd::stoll— long longstd::stoul— unsigned longstd::stoull— unsigned long long
stof stod stold
Varian bilangan titik mengambang untuk float, double, dan long double.
double d = std::stod("3.14159");
float f = std::stof("2.71");C++17 std::from_chars: Tanpa Pengecualian
std::from_chars mengurai data tanpa melempar pengecualian. Fungsi ini mengembalikan struktur dengan ec (kode kesalahan) dan ptr (posisi akhir penguraian) — pilihan yang disarankan dalam perulangan yang sering dijalankan.
#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: Tanpa Alokasi
Kebalikan dari from_chars — menulis angka ke dalam buffer tanpa melakukan alokasi. Ini adalah konversi tercepat yang tersedia di pustaka standar.
Pemeriksaan Cepat
Pengecualian apa yang dilempar oleh std::stoi("abc")?
Ringkasan
std::to_string mengonversi angka menjadi string; std::stoi dan fungsi sejenisnya mengurai string menjadi angka. Keduanya melempar pengecualian saat gagal — gunakan std::from_chars untuk penguraian berperforma tinggi yang tidak melempar pengecualian.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Konversi String: to_string dan stoi” gratis?
Ya — teks lengkap “Konversi String: to_string dan stoi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C++ Academy, upgrade ke CoddyKit PRO. Kursus C++ Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Konversi String: to_string dan stoi”?
Konversikan string dan tipe numerik dengan aman menggunakan std::to_string, std::stoi, dan std::stod. Kamu berlatih C++ Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai C++ Academy?
Tidak diperlukan pengalaman sebelumnya. C++ Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Konversi String: to_string dan stoi” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran C++ Academy ini?
Ya. Setiap pelajaran C++ Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- std::string vs Larik Karakter Gaya C
- Operasi String: concat substr find replace
- String Stream stringstream untuk Parsing
- Konversi String: to_string dan stoi