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
Libérer: 2024-11-15 11:16:02
original
975 Les gens l'ont consulté

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;
}
Copier après la connexion

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;
}
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal