Convertir de entero a string
- luismawolf
- Posts: 30
- Joined: 6 years ago
- Gender:
Re: Convertir de entero a string
Muy Facil, con la funcion itoa. Los parametros son: itoa(cadena_que_quieres_convertir, cadena_donde_guargas_el_resultado, base). Por desgracia no te va a servir para nada en el COJ porque como se ha mencionado en varias ocasiones, el servidor del COJ esta corriendo sobre Ubuntu y los compiladores que hay para linux no tienen esta funcion. Tendras que implementarla. Eso es bastante facil:
Ejemplo:
int n = 192839823, base=3;
string res;
/// Algoritmo usual de cambio de base
while(n) {
res.push_back(n % base + '0');
n /= base;
}
/// Se inserta un cero al final para el caso en que n sea cero
res.push_back('0');
/// Se eliminan todos los ceros del final siempre y cuando la cantidad de
/// caracteres que compongan el numero sean > 1, garantizando que si
/// el numero es cero, no se elimine.
while(res.size() > 1 && res[res.size()-1] == '0')
res.erase(res.size()-1, 1);
/// invertir la cadena
res = string(res.rbegin(), res.rend());
Ejemplo:
int n = 192839823, base=3;
string res;
/// Algoritmo usual de cambio de base
while(n) {
res.push_back(n % base + '0');
n /= base;
}
/// Se inserta un cero al final para el caso en que n sea cero
res.push_back('0');
/// Se eliminan todos los ceros del final siempre y cuando la cantidad de
/// caracteres que compongan el numero sean > 1, garantizando que si
/// el numero es cero, no se elimine.
while(res.size() > 1 && res[res.size()-1] == '0')
res.erase(res.size()-1, 1);
/// invertir la cadena
res = string(res.rbegin(), res.rend());
- luismawolf
- Posts: 30
- Joined: 6 years ago
- Gender:
Re: Convertir de entero a string
/// Algoritmo usual de cambio de base
while(n) {
res.push_back(n % base + '0');
n /= base;
}
en la parte del push_back me dice que no puede coger eso como argumento porque no es un char
while(n) {
res.push_back(n % base + '0');
n /= base;
}
en la parte del push_back me dice que no puede coger eso como argumento porque no es un char
Re: Convertir de entero a string
A mi tu code me compila bien, pero intenta ponerlo asi:
res.push_back('0' + n % base);
res.push_back('0' + n % base);