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
Susan Sarandonasal
2024-12-01 07:46:12833semak imbas

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();

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

char *cstr = str.data();

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);

    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;

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:
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