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!