Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Mengeluarkan Ruang dengan Cekap daripada C Strings?
Penyingkiran Ruang yang Cekap daripada Rentetan C
Mengalih keluar ruang daripada rentetan C ialah tugas biasa untuk manipulasi rentetan. Walaupun mungkin untuk mengulang melalui aksara secara manual, terdapat pendekatan yang lebih cekap.
Kaedah pilihan melibatkan algoritma pustaka standard yang berkuasa remove_if dan predikat isspace. remove_if menghapuskan elemen daripada jujukan berdasarkan syarat yang ditentukan, manakala isspace menyemak aksara ruang putih.
Untuk menggunakan ini, anda boleh memanggil:
remove_if(str.begin(), str.end(), isspace);
Operasi ini sahaja tidak mengubah panjang rentetan tetapi menyusun semula elemen dengan sewajarnya. Untuk melaraskan panjang, kami menggunakan rentetan::erase:
str.erase(remove_if(str.begin(), str.end(), isspace), str.end());
remove_if mengelakkan berbilang salinan data, menjadikannya sangat cekap. Berikut ialah pelaksanaan yang dipermudahkan:
template<typename T, typename P> T remove_if(T beg, T end, P pred) { T dest = beg; for (T itr = beg;itr != end; ++itr) if (!pred(*itr)) *(dest++) = *itr; return dest; }
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Ruang dengan Cekap daripada C Strings?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!