Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menggantikan Substrings dengan Cekap dalam C?
Menggantikan Fragmen Rentetan dengan Rentetan Baharu
Menggantikan bahagian rentetan tertentu dengan rentetan alternatif ialah tugas biasa dalam pengaturcaraan. Dalam C , perpustakaan standard menyediakan penyelesaian yang mudah untuk mencapai ini.
Untuk menggantikan subrentetan, anda boleh memanfaatkan fungsi find() untuk mencari kedudukan permulaan subrentetan sasaran dalam rentetan asal. Selepas itu, anda boleh menggunakan fungsi replace() untuk menggantikan subrentetan sasaran dengan rentetan gantian yang diingini.
Coretan kod berikut menunjukkan proses:
bool replace(std::string& str, const std::string& from, const std::string& to) { size_t start_pos = str.find(from); if(start_pos == std::string::npos) return false; str.replace(start_pos, from.length(), to); return true; } std::string string("hello $name"); replace(string, "$name", "Somename");
Dengan menggunakan pendekatan ini, anda boleh mengubah suai sebahagian rentetan dengan berkesan seperti yang diperlukan.
Mengendalikan Berbilang Penggantian
Dalam senario tertentu, anda mungkin perlu menggantikan berbilang kejadian subrentetan tertentu dalam rentetan. Untuk menangani perkara ini, anda boleh mempertimbangkan fungsi replaceAll(), yang akan menyerupai yang berikut:
void replaceAll(std::string& str, const std::string& from, const std::string& to) { if(from.empty()) return; size_t start_pos = 0; while((start_pos = str.find(from, start_pos)) != std::string::npos) { str.replace(start_pos, from.length(), to); start_pos += to.length(); // In case 'to' contains 'from', like replacing 'x' with 'yx' } }
Fungsi ini berulang melalui rentetan, mencari dan menggantikan semua kejadian subrentetan yang ditentukan dengan rentetan gantian yang disediakan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggantikan Substrings dengan Cekap dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!