私は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);
}
パラメータが単一の文字列であり、 'reemplazarLetras'が単一の文字列を必要とするので、' iterar'がループを必要とする理由は明確ではありません。 –
[そのエラーメッセージについてはどうでしょうか?](http://coliru.stacked-crooked.com/a/072a7c200a172b7e) –
ところで、あなたは**文字列**のコピーを 'remplazarLetras'に渡しています。変更は* copy *になります。元の文字列に変更を加えたい場合は、参照渡ししてください。 –