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

Bagaimanakah Saya Boleh Mencipta std::string dengan Aksara Null Terbenam dalam C ?

Linda Hamilton
Lepaskan: 2024-12-01 02:38:11
asal
839 orang telah melayarinya

How Can I Create a std::string with Embedded Null Characters in C  ?

Mencipta std::string dengan Aksara Null Terbenam

Masalah:

Apabila mencuba untuk membina std::string dengan baris yang mengandungi aksara nol terbenam ( ), seperti sebagai:

std::string my_string("a<pre class="brush:php;toolbar:false">#include <iostream>
#include <string>

int main()
{
    using namespace std::string_literals;

    std::string s = "pl-<pre class="brush:php;toolbar:false">std::string x("pqrs");   // Two characters because input assumed to be C-String
std::string x("pqrs",5); // 5 Characters because input is now a char array with 5 characters.
Salin selepas log masuk
-op"s; // Notice the "s" at the end of the string literal std::cout << s << "\n"; }b");

hanya watak sebelum watak nol dikekalkan. Bagaimanakah kita boleh membina rentetan dengan betul dengan aksara nol terbenam?

Penyelesaian:

Sejak C 14

C 14 diperkenalkan literal rentetan, membolehkan penciptaan langsung std::strings dengan aksara nol terbenam menggunakan s akhiran:

Sebelum C 14

Sebelum C 14, std::string pembina menganggap input ialah rentetan gaya C, yang berakhir dengan watak null. Untuk mengendalikan aksara nol terbenam, gunakan pembina yang mengambil tatasusunan aksara dan panjang:

Nota: std::strings tidak secara inheren ditamatkan. Walau bagaimanapun, kaedah c_str() menyediakan penunjuk kepada penimbal dalaman yang mengandungi rentetan C dengan penamat null.

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

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan