Mira, no manejo muy bien strings, capaz hay una forma mas facil de hacerlo, yo lo hice de esta forma y me funciono, espero te sirva, saludos.
Código C++:
Ver original#include <iostream>
#include <string>
using namespace std;
int main(int argc, char *argv[]) {
string str1 = "jkn$uso$cw92$87&3";
string str2 = "$";
string str3 = "*";
int i=0;
while(i==0){ //la variable i la puse solamente para que funcione el ciclo
string::size_type pos= str1.find (str2, 0); //find busca en str1 lo que esta en str2 y devuelve la posición
if (pos==string::npos) break; //si no encuentra lo que busca ($) entra al if y ejecuta el break y sale del ciclo
cout<<pos<<endl;
str1.replace (pos, 1, str3); //pos indica donde esta $, el 1 es para decirle a replace cuantos caracteres tiene que reemplazar y str3 es lo que tiene que pegar en su lugar
cout<<str1<<endl;
}
return 0;
}
Los cout son solo decorativos :P