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 ?

Patricia Arquette
Lepaskan: 2024-11-30 15:39:09
asal
288 orang telah melayarinya

How to Convert a `std::string` to a `char*` or `char[]` in 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();
Salin selepas log masuk

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();
Salin selepas log masuk

Pilihan Lain:

  • Menyalin ke dalam std: :vector:

Seseorang boleh mencipta std::vektor aksara dan salin aksara dari std::string ke dalamnya. Kaedah data() vektor kemudiannya boleh digunakan untuk mendapatkan penunjuk char*.

  • Peruntukan Memori Manual:

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!

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