Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengeluarkan Aksara Tertentu daripada Rentetan dalam C?

Bagaimana untuk Mengeluarkan Aksara Tertentu daripada Rentetan dalam C?

Linda Hamilton
Lepaskan: 2024-11-24 03:04:09
asal
991 orang telah melayarinya

How to Remove Specific Characters from a String in C  ?

Mengalih keluar Aksara Tertentu daripada Rentetan dalam C

Dalam senario pengaturcaraan di mana input pengguna mungkin mengandungi aksara yang tidak diingini yang perlu dialih keluar, seperti apabila mengumpul nombor telefon, persoalan timbul: Bagaimanakah kita boleh menghapuskan aksara ini dengan berkesan daripada rentetan dalam C ?

Fungsi rentetan terbina dalam seperti mengalih keluar, mencari dan menggantikan, walaupun berguna dalam situasi tertentu, mungkin tidak menyediakan kefungsian yang diingini semasa mengalih keluar aksara tertentu daripada rentetan berdasarkan kandungannya.

Penyelesaian terletak pada penggunaan fungsi std::remove daripada perpustakaan. Algoritma ini mengambil tiga hujah: lelaran permulaan (permulaan rentetan), lelaran penamat (hujung rentetan) dan nilai untuk dialih keluar.

Untuk menggunakan ini pada contoh kami mengalih keluar kurungan , sempang dan ruang daripada input nombor telefon, kita boleh mentakrifkan tatasusunan aksara yang mengandungi aksara ini:

char[] chars = "() -";
Salin selepas log masuk

Melalui setiap aksara dalam tatasusunan, kami menggunakan std::remove ke rentetan nombor telefon:

for (unsigned int i = 0; i < strlen(chars); ++i) {
  str.erase(std::remove(str.begin(), str.end(), chars[i]), str.end());
}
Salin selepas log masuk

Ini secara berkesan mengalih keluar semua kejadian aksara yang ditentukan daripada rentetan, dengan berkesan memberikan output yang diingini.

Untuk mempertingkatkan lagi penyelesaian, kefungsian boleh dirangkumkan menjadi boleh diguna semula fungsi:

void removeCharsFromString(string &str, char* charsToRemove) {
  for (unsigned int i = 0; i < strlen(charsToRemove); ++i) {
    str.erase(remove(str.begin(), str.end(), charsToRemove[i]), str.end());
  }
}
Salin selepas log masuk

Kini, kita boleh menggunakan fungsi ini dengan mudah untuk mengalih keluar aksara yang tidak diingini daripada sebarang rentetan. Sebagai contoh, untuk mengalih keluar kurungan daripada nombor telefon:

removeCharsFromString(phone, "()");
Salin selepas log masuk

Dengan menggunakan std::remove dan melaksanakannya dalam fungsi boleh guna semula, kami mempunyai penyelesaian yang cekap untuk mengalih keluar aksara tertentu daripada rentetan dalam C , menjadikan pemprosesan dan manipulasi data lebih mudah.

Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Aksara Tertentu daripada Rentetan dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan