Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menukar std::string kepada char* atau char[] dalam 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!