Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menukar Rentetan C kepada Tatasusunan Aksara?

Bagaimana untuk Menukar Rentetan C kepada Tatasusunan Aksara?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-10 06:36:02597semak imbas

How to Convert a C   String to a Character Array?

Menukar Rentetan kepada Tatasusunan Aksara dalam C

Apabila bekerja dengan rentetan dalam C , anda mungkin menghadapi senario di mana menukar rentetan kepada tatasusunan aksara adalah perlu. Walau bagaimanapun, tidak seperti menukar kepada penunjuk aksara (char*), anda bertujuan untuk menukar secara terus kepada tatasusunan aksara bersaiz tetap (char[]).

Untuk mencapai penukaran ini, pertimbangkan kaedah berikut:

Kaedah 1: Menggunakan strcpy dan c_str()

string temp = "cat";
char tab2[1024];
strcpy(tab2, temp.c_str());

Kaedah ini menggunakan fungsi strcpy untuk menyalin rentetan ke dalam tatasusunan aksara. c_str() menukar rentetan kepada tatasusunan aksara yang ditamatkan nol.

Kaedah 2: Menggunakan strncpy dan c_str()

Untuk meningkatkan keselamatan, anda boleh menggunakan strncpy to pastikan tiada limpahan penimbal berlaku:

string temp = "cat";
char tab2[1024];
strncpy(tab2, temp.c_str(), sizeof(tab2));
tab2[sizeof(tab2) - 1] = 0;

strncpy menyalin bilangan aksara yang ditentukan ke dalam tatasusunan dan menetapkan aksara terakhir kepada null.

Kaedah 3: Menggunakan Baharu dan c_str( )

string temp = "cat";
char *tab2 = new char [temp.length()+1];
strcpy(tab2, temp.c_str());

Kaedah ini memperuntukkan memori secara dinamik untuk tatasusunan aksara dan kemudian menggunakan strcpy untuk menyalin.

Atas ialah kandungan terperinci Bagaimana untuk Menukar Rentetan C kepada Tatasusunan Aksara?. 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