


Adakah `std::string` Menyertakan Penamat Null secara Automatik?
Adakah std::string Secara Eksplisit Mempunyai Penamat Null?
Dalam C dan C , aksara null ' ' digunakan untuk menamatkan rentetan . Walau bagaimanapun, dalam konteks jenis std::string C, jawapannya lebih bernuansa sedikit.
Gelagat Lalai
Secara lalai, std::string objek tidak mengandungi penamat null. Ini kerana std::string mengurus memorinya sendiri dan menjejaki panjang rentetan secara dalaman. Oleh itu, sistem pengendalian tidak mengetahui panjang rentetan dan cuba mengakses memori melebihi penghujung rentetan (termasuk penamat nol) boleh membawa kepada gelagat yang tidak ditentukan.
Menggunakan c_str()
Walau bagaimanapun, jika anda secara khusus meminta perwakilan tatasusunan aksara yang ditamatkan nol bagi std::string menggunakan c_str(), tatasusunan yang dikembalikan akan termasuk penamat nol. Ini kerana c_str() mengembalikan penunjuk kepada tatasusunan sementara yang dicipta oleh std::string.
Menambah Aksara Null Secara Terus
Adalah penting untuk ambil perhatian bahawa anda boleh secara manual memasukkan aksara null ke dalam std::string seperti mana-mana aksara lain. Walau bagaimanapun, ini tidak akan menjejaskan kelakuan rentetan itu sendiri. Std::string masih akan mengurus memorinya dan menjejaki panjangnya secara dalaman, dan mengakses memori melebihi penghujung rentetan (walaupun terdapat aksara nol) boleh menghasilkan hasil yang tidak dapat diramalkan.
Contoh
Kod berikut menunjukkan perkara ini tingkah laku:
string s("hello"); cout << s.size() << ' '; s[1] = '<pre class="brush:php;toolbar:false">5 5
Output:
Seperti yang anda lihat, memasukkan aksara nol pada indeks 1 tidak mengubah saiz rentetan seperti yang dilaporkan oleh s.size() , menunjukkan bahawa aksara null tidak dilayan secara khusus oleh std::string itu sendiri.
Atas ialah kandungan terperinci Adakah `std::string` Menyertakan Penamat Null secara Automatik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Apakah jenis nilai yang dikembalikan oleh fungsi bahasa C? Apa yang menentukan nilai pulangan?

Gulc: Perpustakaan C dibina dari awal

Langkah Format Fungsi Fungsi C Langkah Penukaran Kes

Apakah definisi dan peraturan panggilan fungsi bahasa C dan apakah itu

Di manakah nilai pulangan fungsi bahasa C yang disimpan dalam ingatan?

Penggunaan dan perkongsian frasa yang berbeza

Bagaimanakah saya menggunakan algoritma dari STL (jenis, mencari, mengubah, dll) dengan cekap?

Bagaimana Perpustakaan Templat St Standard (STL) berfungsi?
