Lehrzeichen entfernen

makiavelli

Grünschnabel
Kann mir jemanden helfen unnotige Leerzeichen aus einem String zu entfernen, d.h zwischen 2 Worter soll nur einen Lehrzeichen sein.Ich habe eine Funktion geschrieben aber die loscht nur die Lehrzeichen am Ende des Strings und stoppt beim ersten char
Code:
void trim()
{
   for(size_t i=serienBrief.length()-2; i>0 ;i--)
   {
        if((serienBrief[i]==' ') && (serienBrief[i-1]==' ') ) 
              serienBrief.erase(i);	
        else break;
   }
}
 
Ich bin zwar no ned so fit im Programmieren, aber es könnte glaub ich an dem break; liegen, da wird die Schleife komplett verlassen und ned nur das if abgebrochen .
D. h. dein Programm geht immer nur bis zum ersten einfachen Leerzeichen.
 
moin


Der Fehler lag bei erase, so wie du ihn benutzt hast erwartet er einen iterator.....
Is auch egal.
So wie ich erase jetzt benutzt hab, gibt man an ab welcher Position und wieviele zeichen gelöscht werden sollen.
Code:
#include <string>

using namespace std;

int main()
{
	string serienBrief = "Hallo  ich  ab viele  Leerzeichen   ";

	for(int i=serienBrief.length()-2; i>0 ;i--)
	{
		if((serienBrief.at(i)==' ') && (serienBrief.at(i-1) ==' ') )
			serienBrief.erase((size_t)i, (size_t)1);
	}

	return 0;
}


mfg
umbrasaxum
 
Zurück