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
Patricia Arquetteoriginal
2024-11-11 05:50:02516parcourir

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;

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;

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

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, "()-" );

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