Programme pour supprimer les espaces d'une chaine de caractéres

Résolu/Fermé
Pironico Messages postés 6 Date d'inscription mardi 25 juin 2013 Statut Membre Dernière intervention 30 avril 2015 - Modifié par Pironico le 22/04/2015 à 19:22
Pironico Messages postés 6 Date d'inscription mardi 25 juin 2013 Statut Membre Dernière intervention 30 avril 2015 - 23 avril 2015 à 18:34
Bonjour;
J'ai écris un programme pour supprimer les espaces d'une chaine de caractères, mais celui-ci ne fonctionne pas.
En gros c'était ça (a et b sont des string) :
 for (i=0; i <= a.size(); i++)
{
if (a.substr(i,1) != " ") //je penses que le problème vient de cette ligne
{
b += a.substr(i,1);
}
}
Auriez vous une alternative s'il-vous-plait ? sans me renvoyer vers d'autres forums ou sujets, car j'ai déjà cherché mais je n'ai pas compris les solutions proposées.

Merci d'avance !
A voir également:

2 réponses

skymax406 Messages postés 218 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 22 avril 2015 24
22 avril 2015 à 20:37
Hello !
string removeSpaces(string input)
{
  input.erase(std::remove(input.begin(),input.end(),' '),input.end());
  return input;
}


Peux tu essayer cette fonction ?
0
Pironico Messages postés 6 Date d'inscription mardi 25 juin 2013 Statut Membre Dernière intervention 30 avril 2015
Modifié par Pironico le 22/04/2015 à 22:51
Déjà, merci de cette réponse rapide;
J'ai essayé cette fonction, mais tout ne fonctionne pas comme je voudrais.
Voici mon code :
#include <iostream>
#include<string>
#include<algorithm> //j'ai eu du mal à le trouver celui là

using namespace std;
string removeSpaces(string input);

int main()
{
string phrase;
cin >> phrase;
phrase = removeSpaces(phrase);
cout << phrase;

return 0;
}

string removeSpaces(string input)
{
input.erase(std::remove(input.begin(),input.end(),' '),input.end());
return input;
}
Si j'entre la phrase : Voici une phrase
Tout ce qui ressort est : phrase
(néanmoins cette fonction supprime tous les espaces aux débuts, avant les premiers caractères)

Merci !
0
pkpkmépkpk Messages postés 341 Date d'inscription samedi 14 mai 2011 Statut Membre Dernière intervention 14 janvier 2018 52
23 avril 2015 à 11:23
Salut,

C'est plutôt "Voici" qui devrait sortir.
Le problème ne vient pas de removeSpaces, mais de la ligne
cin >> phrase;
: ça s'arrête au premier espace. Pour t'en convaincre, fais un
cout << phrase;
juste après cette ligne. Remplace donc
cin >> phrase;
par
getline(cin,phrase);
.
0
Pironico Messages postés 6 Date d'inscription mardi 25 juin 2013 Statut Membre Dernière intervention 30 avril 2015
23 avril 2015 à 18:34
Salut;
En effet, merci bien pour cette réponse !
0