Mengalih keluar Aksara Tertentu daripada Rentetan dalam C
Banyak aplikasi memerlukan memanipulasi input pengguna dan mengalih keluar aksara yang tidak diingini daripada rentetan adalah tugas biasa. Artikel ini membincangkan cara untuk mencapai tugas ini dengan cekap dalam C .
Pernyataan Masalah:
Pertimbangkan senario di mana pengguna memasukkan nombor telefon:
cout << "Enter phone number: "; string phone; cin >> phone;
Input mentah mungkin mengandungi aksara tambahan seperti kurungan dan sempang: "(555) 555-5555". Matlamatnya adalah untuk mengalih keluar aksara ini untuk mendapatkan rentetan angka yang bersih.
Penyelesaian:
C Standard Library menyediakan kaedah yang mudah untuk mencapai matlamat ini. Algoritma std::remove berulang melalui rentetan dan mengalih keluar contoh aksara tertentu. Walau bagaimanapun, ia tidak mengubah suai secara langsung rentetan asal.
string str("(555) 555-5555"); char charsToRemove[] = "()-"; // Characters to be removed for (unsigned int i = 0; i < strlen(charsToRemove); ++i) { str.erase(std::remove(str.begin(), str.end(), charsToRemove[i]), str.end()); } // Output: 555 5555555 cout << str << endl;
Pendekatan Berasaskan Fungsi:
Untuk kemudahan penggunaan, anda boleh menentukan fungsi yang memerlukan rentetan dan tatasusunan aksara sebagai input dan melaksanakan penyingkiran aksara:
void removeCharsFromString(string &str, char* charsToRemove) { for (unsigned int i = 0; i < strlen(charsToRemove); ++i) { str.erase(std::remove(str.begin(), str.end(), charsToRemove[i]), str.end()); } }
Fungsi ini kemudiannya boleh dipanggil dengan rentetan yang dikehendaki untuk mengalih keluar aksara tertentu. Contohnya:
string phone = "(555) 555-5555"; removeCharsFromString(phone, "()-" );
Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar Aksara Tertentu daripada Rentetan dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!