# Zeichen in String ersetzen



## shrewm (31. Dezember 2004)

Hallo, wie kann ich in einem std String in C++ einzelne Zeichen ersetzen? Hier irgendwann mal in einem Board gelesen, dass die .replace Funktion nicht unbedingt die perfekte Anwedungsmöglichkeit dafür ist. Und wenn das damit doch gut geht, wie kann ich die so anwenden, dass in dem String jedes Leerzeichen durch einen Unterstrich ersetzt wird?
Danke schonmal für die Hilfe


----------



## PixelShader (31. Dezember 2004)

Hi,
man koennte doch eine kleine Schleife nehmen?:

```
// Alle Leerzeichen in "String" durch _ ersetzen
char *c;
while((c = strchr(String, ' '))!=NULL)*c = '_';
// vertig
```


----------



## shrewm (31. Dezember 2004)

Hab das jetzt so gemacht:

```
string bearbeitung;
char *test;
cin << bearbeitung;
while((test = strchr(bearbeitung.c_str(), ' '))!=NULL)*test = '_';
```
Aber wirklich funktionieren tut das auch nicht. Hab ich einen Fehler gemacht oder stimmt der Aufbau so?


----------



## PixelShader (31. Dezember 2004)

Dann halt den:   

```
string bearbeitung;
int pos;
cin << bearbeitung;
while((pos = bearbeitung.find(' '))!=string::npos)bearbeitung[pos] = '_';
```


----------



## seega (26. November 2009)

ich kann mich auch irren,
aber schreibt man nicht
cin >> bearbeiten 
ist doch Eingabe nicht Ausgabe


----------



## Nord-Süd-Richtung (26. November 2009)

seega hat gesagt.:


> ich kann mich auch irren,
> aber schreibt man nicht
> cin >> bearbeiten
> ist doch Eingabe nicht Ausgabe



Da hast du dich nicht geirrt


----------



## vfl_freak (27. November 2009)

Moin,

vielleicht war es 2004 ja noch anders ? ? ? 

Gruß
Klaus


----------

