Rumah >pembangunan bahagian belakang >C++ >Bagaimana Saya Boleh Mencipta std::string dengan Aksara Null Terbenam?
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!