Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menukar `std::string` kepada `char*` atau `char[]` dalam C ?
Menukar std::string kepada char* atau char[]
Dalam C , seseorang mungkin menghadapi keperluan untuk menukar std:: rentetan, yang memegang jujukan aksara, ke dalam tatasusunan aksara yang ditamatkan nol yang diwakili oleh char* atau char[]. Walau bagaimanapun, penukaran langsung menggunakan pengendali tugasan mengakibatkan ralat.
Untuk mencapai penukaran ini, beberapa kaedah tersedia:
1. c_str() kaedah:
Kaedah c_str() std::string mengembalikan penuding kepada rentetan gaya C asas, yang ditamatkan nol. Penunjuk ini boleh ditugaskan terus kepada pembolehubah char*.
std::string str = "string"; const char *cstr = str.c_str();
2. kaedah data():
Kaedah data() std::string juga mengembalikan penuding kepada rentetan gaya C yang mendasari, tetapi ia bukan const. Penunjuk ini boleh diberikan kepada pembolehubah char* tanpa kelayakan const.
std::string str = "string"; char *cstr = str.data();
Pilihan Lain:
Seseorang boleh mencipta std::vektor aksara dan salin aksara dari std::string ke dalamnya. Kaedah data() vektor kemudiannya boleh digunakan untuk mendapatkan penunjuk char*.
Seseorang boleh secara manual peruntukkan tatasusunan aksara menggunakan operator baharu, salin aksara daripada std::string ke dalam tatasusunan dan gunakan tatasusunan sebagai penunjuk char*. Pendekatan ini harus digunakan dengan berhati-hati kerana isu pengurusan memori manual.
Ringkasnya, kaedah c_str() dan data() std::string menyediakan cara mudah untuk menukar std::string kepada char* atau jenis data char[]. Pilihan lain, seperti menyalin ke dalam std::vektor atau peruntukan memori manual, boleh digunakan dalam situasi tertentu.
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!