Maison  >  Article  >  développement back-end  >  Programme C++ pour supprimer les espaces d'une chaîne à l'aide d'un flux de chaînes

Programme C++ pour supprimer les espaces d'une chaîne à l'aide d'un flux de chaînes

PHPz
PHPzavant
2023-08-27 10:21:051301parcourir

Programme C++ pour supprimer les espaces dune chaîne à laide dun flux de chaînes

Comme mentionné dans la question donnée, nous devons supprimer les espaces de la chaîne à l'aide du flux de chaînes. Comme son nom l'indique, les flux de chaînes convertissent les chaînes en flux. Cela fonctionne de manière similaire à cin en C++. Il est associé à un objet chaîne qui a accès au tampon de chaîne dans lequel il est stocké.

string s =" a for apple, b for ball";
res = solve(s);

À l'aide d'un tampon de chaîne, nous lirons chaque mot un par un et le concaténerons en une nouvelle chaîne, qui sera notre réponse.

REMARQUE - Les flux de type chaîne sont disponibles dans l'en-tête sstream de C++, nous devons donc l'inclure.

Regardons quelques scénarios d'entrée/sortie

En supposant qu'il n'y a pas d'espaces dans l'entrée de la fonction, la sortie sera la même que l'entrée -

Input: “Tutorialspoint”
Result: “Tutorialspoint”

En supposant qu'il n'y a pas d'espaces dans l'entrée de la fonction, le résultat de sortie sera une chaîne sans espaces -

Input: “Tutorials Point”
Result: “TutorialsPoint”

En supposant que l'entrée acceptée par la fonction ne contient que des espaces, cette méthode ne peut pas fournir de résultat en sortie -

Input: “ ”
Result: 

Algorithme

  • Considérez une chaîne d'entrée avec des caractères.

  • Vérifie si la chaîne est vide et supprime tout espace présent dans l'entrée à l'aide du mot-clé stringstream.

  • Ce processus sera terminé jusqu'à ce que le pointeur de flux de chaîne atteigne la fin de la ligne.

  • Si la fin de la ligne de la chaîne est atteinte, le programme se termine.

  • La chaîne mise à jour est renvoyée au résultat de sortie.

Exemple

Par exemple, nous avons une chaîne telle que "a représente une pomme, b représente une balle" et nous devons la convertir en "aforapple, bforball".

Suivez le code détaillé pour supprimer les espaces d'une chaîne d'entrée afin d'en faire un flux de caractères -

#include <iostream>
#include <sstream>
using namespace std;
string solve(string s) {
   string answer = "", temp;
   stringstream ss;
   ss << s;
   while(!ss.eof()) {
      ss >> temp;
      answer+=temp;
   }
   return answer;
}
int main() {
   string s ="a for apple, b for ball";
   cout << solve(s);
   return 0;
}

Sortie

Aforapple,bforball

Exemple (en utilisant getline)

Nous avons une autre façon de résoudre la même requête en C++ en utilisant getline.

#include <iostream>
#include <sstream>
using namespace std;
string solve(string s) {
   stringstream ss(s);
   string temp;
   s = "";
   while (getline(ss, temp, ' ')) {
      s = s + temp;
   }
   return s;
}
int main() {
   string s ="a for apple, b for ball";
   cout << solve(s);
   return 0;
}

Sortie

Aforapple,bforball

Conclusion

Nous voyons qu'en utilisant des flux de chaînes, les chaînes sont stockées dans un tampon et nous pouvons obtenir les chaînes textuellement et les concaténer, en supprimant les espaces.

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer