Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menggantikan Bahagian Rentetan dalam C?
Menggantikan Segmen Rentetan dengan Rentetan Baharu
Dalam C , menggantikan sebahagian daripada rentetan dengan rentetan lain memerlukan gabungan operasi. Walaupun sesetengah perpustakaan menawarkan fungsi replace() khusus untuk penggantian langsung, berikut ialah cara anda boleh mendekatinya menggunakan fungsi C standard:
Menggunakan Fungsi find() dan replace()
Fungsi find() mencari kedudukan subrentetan dalam rentetan. Dengan menggabungkan ini dengan fungsi replace(), yang menggantikan julat yang ditentukan dengan rentetan lain, anda boleh menggantikan sebahagian rentetan dengan berkesan:
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");
Pendekatan ini menggantikan kejadian pertama subrentetan "$name " dengan "Sesetengahnya."
Menggantikan Semua Kejadian dengan replaceAll
Untuk menggantikan semua kejadian subrentetan, anda boleh melanjutkan kaedah replace() untuk mencari dan menggantikan berbilang kejadian dalam rentetan:
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(); // Adjust start position if 'to' contains 'from' } }
Fungsi ini melaksanakan penggantian berturut-turut semua kejadian subrentetan "dari" dengan rentetan "ke" dalam rentetan yang diberikan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggantikan Bahagian Rentetan dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!