Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menggantikan Subrentetan dengan Cekap dalam Rentetan C?
Ganti Sebahagian Rentetan dengan Rentetan Lain
Menggantikan subrentetan dalam rentetan ialah tugas biasa dalam pengaturcaraan, dan C menyediakan beberapa cara untuk melakukannya. Satu pendekatan ialah menggunakan fungsi pustaka C standard cari dan ganti.
Menggunakan cari dan ganti
Fungsi find mengambil rentetan dan subrentetan sebagai argumen, dan ia mengembalikan kedudukan subrentetan dalam rentetan. Jika subrentetan tidak dijumpai, cari kembali rentetan::npos. Untuk menggantikan subrentetan dengan subrentetan lain, anda boleh menggunakan fungsi ganti. Fungsi ganti mengambil rentetan, subrentetan untuk diganti dan subrentetan baharu untuk menggantikannya. Berikut ialah contoh:
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");
Menggunakan replaceAll
Jika anda perlu menggantikan semua kejadian subrentetan dengan subrentetan lain, anda boleh menggunakan fungsi yang dipanggil replaceAll. Berikut ialah contoh pelaksanaan replaceAll:
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' } }
Kedua-dua replace dan replaceAll adalah cekap dan mudah untuk digunakan. Ia sesuai untuk menggantikan subrentetan dalam rentetan dalam pelbagai aplikasi.
Atas ialah kandungan terperinci Bagaimana untuk Menggantikan Subrentetan dengan Cekap dalam Rentetan C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!