Rumah >pembangunan bahagian belakang >C++ >Bagaimana Saya Boleh Mencipta std::string dengan Aksara Null Terbenam?

Bagaimana Saya Boleh Mencipta std::string dengan Aksara Null Terbenam?

DDD
DDDasal
2024-12-14 17:50:12794semak imbas

How Can I Create a std::string with an Embedded Null Character?

Membina std::string dengan Embedded Null

Apabila cuba mencipta std::string dengan aksara null terbenam menggunakan sintaks seperti std::string my_string("a\0b");, hanya satu aksara dikekalkan. Ini berlaku kerana pembina std::string menjangkakan rentetan C, yang ditamatkan nol. Apabila menemui aksara null, penghuraian terhenti.

Untuk membina std::string dengan null terbenam dengan betul, pertimbangkan pendekatan berikut:

C 14 dan Kemudian:

Perkenalkan literal rentetan menggunakan akhiran s untuk mencipta rentetan std::string tanpa mentafsir aksara nol. Ini boleh dicapai dengan:

std::string s = "pl-<pre class="brush:php;toolbar:false">std::string x("pqrs", 5);
-op"s;

Sebelum C 14:

Gunakan pembina rentetan yang menerima tatasusunan aksara dan panjangnya:

Ingat bahawa std::string tidak menggunakan penamatan nol. Walau bagaimanapun, melalui kaedah c_str(), anda boleh mendapatkan penunjuk kepada penimbal dalaman yang mengandungi rentetan C.

Atas ialah kandungan terperinci Bagaimana Saya Boleh Mencipta std::string dengan Aksara Null Terbenam?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn