Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Menukar std::string kepada char* atau char[] dalam C ?

Bagaimana untuk Menukar std::string kepada char* atau char[] dalam C ?

Susan Sarandon
Lepaskan: 2024-12-01 07:46:12
asal
897 orang telah melayarinya

How to Convert a std::string to a char* or char[] in C  ?

Tukar std::string kepada char* atau char[]

Menukar std::string kepada char* atau char[] jenis data boleh menjadi tugas biasa dalam C , tetapi perlu diingat bahawa penukaran automatik tidak disokong. Untuk mencapai matlamat ini, kaedah c_str() boleh digunakan untuk mendapatkan perwakilan rentetan gaya C bagi std::string.

std::string str = "string";
const char *cstr = str.c_str();
Salin selepas log masuk

Kaedah c_str() mengembalikan penunjuk char const, jadi jika a penunjuk bukan const diperlukan, kaedah data() boleh digunakan sebaliknya:

char *cstr = str.data();
Salin selepas log masuk

Alternatif Pilihan:

Selain menggunakan c_str() dan data(), terdapat kaedah lain untuk menukar std::string kepada char*:

  • Menyalin Aksara ke dalam Vektor:

    std::vector<char> cstr(str.c_str(), str.c_str() + str.size() + 1);
    Salin selepas log masuk

    Perhatikan bahawa versi ini menyalin menamatkan aksara nol (' ').

  • Pengurusan Memori Manual (Gunakan dengan Berhati-hati):

    char *cstr = new char[str.size() + 1];
    std::strcpy(cstr, str.c_str());
    // do stuff
    delete [] cstr;
    Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk Menukar std::string kepada char* atau char[] dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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