Maison >développement back-end >C++ >Comment puis-je supprimer des caractères spécifiques d'une chaîne en C à l'aide de std::remove() ?

Comment puis-je supprimer des caractères spécifiques d'une chaîne en C à l'aide de std::remove() ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-15 11:16:02981parcourir

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

Suppression de caractères spécifiques des chaînes en C

Lorsqu'il s'agit de saisies utilisateur, il est courant de rencontrer des caractères indésirables qui doivent être supprimés. Par exemple, un numéro de téléphone peut contenir des parenthèses, des tirets ou des espaces qui doivent être supprimés pour un traitement ultérieur.

En C , il existe plusieurs fonctions de manipulation de chaînes qui peuvent être utilisées pour atteindre cet objectif. La fonction std::remove(), en particulier, fournit un moyen puissant de supprimer des caractères spécifiques d'une chaîne.

Pour utiliser std::remove(), il vous suffit de transmettre la chaîne et le caractère à être supprimés comme arguments. La fonction renvoie un itérateur pointant vers la fin de la chaîne modifiée, garantissant que toutes les instances du caractère spécifié ont été supprimées.

Voici un exemple qui montre comment supprimer les parenthèses, les tirets et les espaces d'un numéro de téléphone. 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;
}

Dans cet exemple, la fonction std::remove() est utilisée dans une boucle pour supprimer chaque caractère spécifié un par un. La chaîne résultante est stockée dans la variable du téléphone et imprimée sur la console.

Vous pouvez également encapsuler la logique de suppression dans une fonction pour la réutilisabilité :

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;
}

Cette fonction prend une référence de chaîne et un tableau de caractères en entrée et supprime toutes les occurrences des caractères spécifiés. Il peut être facilement utilisé pour nettoyer tout type d'entrée de chaîne.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn