Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah saya boleh mengalih keluar aksara tertentu daripada rentetan dalam C menggunakan std::remove()?

Bagaimanakah saya boleh mengalih keluar aksara tertentu daripada rentetan dalam C menggunakan std::remove()?

Patricia Arquette
Lepaskan: 2024-11-15 11:16:02
asal
988 orang telah melayarinya

How can I remove specific characters from a string in C   using std::remove()?

Mengalih keluar Aksara Tertentu daripada Rentetan dalam C

Apabila berurusan dengan input pengguna, adalah perkara biasa untuk menghadapi aksara yang tidak diingini yang perlu dialih keluar. Sebagai contoh, nombor telefon mungkin mengandungi kurungan, sengkang atau ruang yang perlu dialih keluar untuk pemprosesan selanjutnya.

Dalam C , terdapat beberapa fungsi manipulasi rentetan yang boleh digunakan untuk mencapai matlamat ini. Fungsi std::remove(), khususnya, menyediakan cara yang berkesan untuk mengalih keluar aksara tertentu daripada rentetan.

Untuk menggunakan std::remove(), anda hanya perlu menghantar rentetan dan aksara ke dikeluarkan sebagai hujah. Fungsi ini mengembalikan lelaran yang menunjuk ke penghujung rentetan yang diubah suai, memastikan semua tika aksara yang ditentukan telah dialih keluar.

Berikut ialah contoh yang menunjukkan cara mengalih keluar kurungan, sempang dan ruang daripada nombor telefon string:

#include <iostream>
#include <algorithm>

int main() {
  // Get user input for phone number
  std::string phone;
  std::cout << "Enter phone number: ";
  std::cin >> phone;

  // Characters to remove
  char chars[] = "()- ";

  // Remove the specified characters using std::remove()
  for (unsigned int i = 0; i < strlen(chars); ++i) {
    phone.erase(std::remove(phone.begin(), phone.end(), chars[i]), phone.end());
  }

  // Output the modified phone number
  std::cout << "Cleaned phone number: " << phone << std::endl;

  return 0;
}
Salin selepas log masuk

Dalam contoh ini, fungsi std::remove() digunakan dalam gelung untuk mengalih keluar setiap aksara yang ditentukan satu demi satu. Rentetan yang terhasil disimpan dalam pembolehubah telefon dan dicetak ke konsol.

Anda juga boleh merangkum logik penyingkiran ke dalam fungsi untuk kebolehgunaan semula:

void removeCharsFromString(std::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());
  }
}

int main() {
  std::string phone;
  std::cout << "Enter phone number: ";
  std::cin >> phone;

  char chars[] = "()- ";

  removeCharsFromString(phone, chars);

  std::cout << "Cleaned phone number: " << phone << std::endl;

  return 0;
}
Salin selepas log masuk

Fungsi ini mengambil rujukan rentetan dan tatasusunan aksara sebagai input dan mengalih keluar semua kejadian aksara yang ditentukan. Ia boleh digunakan dengan mudah untuk membersihkan sebarang jenis input rentetan.

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengalih keluar aksara tertentu daripada rentetan dalam C menggunakan std::remove()?. 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