Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menggantikan Subrentetan dengan Cekap dalam Rentetan C?

Bagaimana untuk Menggantikan Subrentetan dengan Cekap dalam Rentetan C?

Patricia Arquette
Patricia Arquetteasal
2024-12-22 05:02:13367semak imbas

How to Efficiently Replace Substrings in C   Strings?

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!

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