我正在處理某個程序,用於轉換用戶給出的字符串中的某些字母,如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'。所做的任何更改將發送到*副本*。如果您想對原始字符串進行更改,請按引用傳遞。 –