Maison > développement back-end > C++ > Comment supprimer des caractères spécifiques des chaînes en C ?

Comment supprimer des caractères spécifiques des chaînes en C ?

Patricia Arquette
Libérer: 2024-11-11 05:50:02
original
518 Les gens l'ont consulté

How to Remove Specific Characters from Strings in C  ?

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

De nombreuses applications nécessitent de manipuler les entrées de l'utilisateur, et la suppression des caractères indésirables des chaînes est une tâche courante. Cet article explique comment réaliser efficacement cette tâche en C.

Énoncé du problème :

Considérons un scénario dans lequel un utilisateur entre un numéro de téléphone :

cout << "Enter phone number: ";
string phone;
cin >> phone;
Copier après la connexion

L'entrée brute peut contenir des caractères supplémentaires comme des parenthèses et des tirets : "(555) 555-5555". L'objectif est de supprimer ces caractères pour obtenir une chaîne numérique propre.

Solution :

La bibliothèque standard C fournit une méthode pratique pour y parvenir. L'algorithme std::remove parcourt une chaîne et supprime les instances d'un caractère spécifié. Cependant, il ne modifie pas directement la chaîne d'origine.

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

Approche basée sur les fonctions :

Pour faciliter l'utilisation, vous pouvez définir une fonction qui prend une chaîne et un tableau de caractères comme entrées et effectue la suppression des caractères :

void removeCharsFromString(string &amp;str, char* charsToRemove) {
  for (unsigned int i = 0; i < strlen(charsToRemove); ++i) {
    str.erase(std::remove(str.begin(), str.end(), charsToRemove[i]), str.end());
  }
}
Copier après la connexion

Cette fonction peut ensuite être appelée avec les chaînes souhaitées pour supprimer des caractères spécifiques. Par exemple :

string phone = "(555) 555-5555";
removeCharsFromString(phone, "()-" );
Copier après la connexion

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