Rumah >pembangunan bahagian belakang >C++ >Bagaimana Saya Menukar C std::string kepada char* atau char[]?
Menukar std::string kepada char* atau char[]
Menukar std::string kepada char* atau char[] jenis data dalam C memerlukan kaedah eksplisit, kerana ia tidak menukar secara automatik.
Kaedah 1: Menggunakan c_str()
Untuk mendapatkan versi rentetan C std:: rentetan, gunakan kaedah c_str(). Kaedah ini mengembalikan const char. Untuk char bukan const, gunakan .data():
std::string str = "string"; const char *cstr = str.c_str(); // const char* char *cstr = str.data(); // non-const char*
Kaedah 2: Menyalin ke dalam Vektor
Salin aksara std::string ke dalam a std::vector
std::vector<char> cstr(str.c_str(), str.c_str() + str.size() + 1); char *ptr = cstr.data(); // pointer to c-string
Kaedah 3: Peruntukan Tatasusunan Manual (Tidak Disyorkan)
Peruntukkan tatasusunan secara manual untuk rentetan C:
const char *cstr = new char[str.size() + 1]; std::strcpy(cstr, str.c_str()); // ... use the array ... delete [] cstr;
Ia amat penting ingat bahawa pengurusan memori manual boleh membawa kepada ralat. Sebagai amalan terbaik, lebih suka menggunakan .c_str() atau .data().
Atas ialah kandungan terperinci Bagaimana Saya Menukar C std::string kepada char* atau char[]?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!