Я работаю над программой, которая преобразует определенные буквы из строки, заданной пользователем, например a = 4, e = 3 и так далее на. Я хочу заявить, что я все еще новичок, и я искал ответ, но я не могу найти ничего, что помогло бы мне.Зачем нужна эта ошибка? [Ошибка] неверное преобразование из 'char' в 'const char *' [-fpermissive]
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
void reemplazarLetras(string cadena);
void iterar(string cadena);
int main(){
string cadena;
do{
cout << "Escribe una cadena de texto de entre 5 y 50 caracteres" << endl;
getline(cin, cadena);
}while(cadena.length() < 5 || cadena.length() > 50);
iterar(cadena);
cout << "Tu nueva cadena transformada es: " << cadena << endl;
}
void reemplazarLetras(string cadena){
//Primero se reemplazan las vocales
cadena.replace(cadena.find("a"), 1, "4");
cadena.replace(cadena.find("e"), 1, "3");
cadena.replace(cadena.find("i"), 1, "1");
cadena.replace(cadena.find("o"), 1, "0");
//Despues se reemplazan las consonantes s y t
cadena.replace(cadena.find("s"), 1, "5");
cadena.replace(cadena.find("t"), 1, "7");
}
void iterar(string cadena){
for_each(cadena.begin(), cadena.end(), reemplazarLetras);
}
Непонятно, почему 'iterar' нуждается в цикле, поскольку параметр представляет собой одну строку, а' reemplazarLetras' требует одну строку. –
[Обязательно об этом сообщении об ошибке?] (Http://coliru.stacked-crooked.com/a/072a7c200a172b7e) –
Кстати, вы ** передаете копию строки ** на 'remplazarLetras'. Любые внесенные изменения будут сделаны в * copy *. Если вы хотите внести изменения в исходную строку, перейдите по ссылке. –