[C++] Zamiana wszystkich znaków w łańcuchu

0

Mam stringa i potrzebuje w nim zamienić wszystkie litery "a" na "^". Jak to zrobić?
Próbowałem

string.replace(poczateklancucha,konieclancucha,"a","^"); 

coś nie działa za bardzo...

0

http://www.cplusplus.com/reference/string/string/replace/ moze to Ci pomoze.
Ewentualnie przeiteruj po stringu "recznie" i zamien znaki ;)

0

Funkcja replace służy do trochę czegoś innego. Tutaj najprościej będzie jednak użyć pętli, jak pisze [losowa nazwa]. Ewentualnie skorzystać z funkcji transform, ale to by było trudniejsze;)

0
#include <iostream>
#include <conio.h>
using namespace std;
 int main()
 {         
   string st;        
   cout<<"podaj string ";
   getline(cin,st);
    for(int i=0;i<st.length();i++)     
      if(st[i]=='a')st[i]='^';    
    cout<<st;    
 getch();
 return 0;                                         
}
 
0

kortyg - działa, teraz:

Mam do przesłania dane GET'em i muszę spację zamienić na %20.

Ale zamienia mi tylko na 0 zamiast %20.

0

Bo wtedy to już jest inna bajka, musisz podmienić znaki na stringi :)

string url_encode(string &str) {
  string out;
  for(int i=0;i<str.length();i++)    
      if(str[i]==' ') out += "%20" else out.append(str[i]);    
  return out;
}
0

Dzięki wielkie. Można zamknąć temat.

1 użytkowników online, w tym zalogowanych: 0, gości: 1