Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: NanoTech en 3 Abril 2014, 19:52 pm



Título: Ayuda codigo convertir numero entero a string
Publicado por: NanoTech en 3 Abril 2014, 19:52 pm
 Hola, les pido una ayuda sobre un código que hice para convertir un numero entero a string. El código puede trabajar tanto con números negativos como positivos(aunque solo lo tengo implementado para números positivos). El tema es que no me arroja nada por la salida estandar..HELP! (soy aprendiz en C++)

#include <iostream>
#include <string>


using namespace std;

string intToString(const int x);


int main()
{
    int Numero;
    cout<<"Ingrese un numero entero: ";
    cin>>Numero;
    cout<<"El numero convertido en string es: "<<intToString(Numero)<<endl;
    return 0;
}


string intToString(const int x)
{

string NumeroString;
int y=x,resto; //Copia del numero x

while(y!=0 && resto!=0)
{
resto=y%10;
y=y/10;
NumeroString.push_back((char)resto);

}

return NumeroString;
}


Título: Re: Ayuda codigo convertir numero entero a string
Publicado por: vangodp en 3 Abril 2014, 20:06 pm
a que te refieres con convertir a un string?? ¿¿100 = "cien"?? :huh:


Título: Re: Ayuda codigo convertir numero entero a string
Publicado por: NanoTech en 3 Abril 2014, 20:13 pm
Sorry quizas me explique mal... La funcion debe retornar un objeto string conteniendo los caracteres del numero ingresado. Por ej. si se ingreso 2014 debe retornar los caracteres 2,0,1 y 4 ..ahora si se entendera mejor .. 


Título: Re: Ayuda codigo convertir numero entero a string
Publicado por: eferion en 3 Abril 2014, 20:40 pm
el número 8, no es lo mismo que el carácter '8'.

Si miras cualquier tabla ASCII verás que el código que representa al carácter '8' es el  0x38. Lo he puesto en hexadecimal porque es más sencillo de ver.

Para convertir un dígito numérico en su correspondiente carácter has de sumarle 0x30. Si tu intentas imprimir directamente el número 8, estarás mandando a la salida estándar el código correspondiente a una pulsación de la tecla "retroceso" o "borrar", como mejor la identifiques.


Título: Re: Ayuda codigo convertir numero entero a string
Publicado por: amchacon en 3 Abril 2014, 20:43 pm
Como anotación, te diré que eso ya está implementado en la librería estándar:
Código
  1. #include <sstream>
  2.  
  3. //...
  4.  
  5. stringstream linea;
  6. linea<<Numero;
  7.  
  8. cout<<linea.str()<<endl;


Título: Re: Ayuda codigo convertir numero entero a string
Publicado por: SrCooper en 3 Abril 2014, 20:51 pm
La manera más sencilla (utilizando C++11) sería esta:
Código
  1. std::string linea = std::to_string(42);

Un saludo :D


Título: Re: Ayuda codigo convertir numero entero a string
Publicado por: ivancea96 en 3 Abril 2014, 20:54 pm
Solo un par de correcciones:

Código
  1. string intToString(const int x)
  2. {
  3.  
  4. string NumeroString;
  5. int y=x,resto;
  6.  
  7. /** Aquí tendrías que comprobar si es negativo o no, para luego ponerle el signo '-' delante del número.
  8. Eso, si quieres hacerlo con negativos también, claro **/
  9.  
  10. while(y!=0) // resto!=0 sobraba. Aquí no importa que número es el resto.
  11. {
  12.    resto=y%10;
  13.    y=y/10;
  14.    NumeroString=(char)(resto+48) + NumeroString; //Con push_back lo pondríamos al revés
  15. }                                //Lo de +48 es, como dijo Eferion, para convertir el numero a un char del 0 al 9 (48-57)
  16.  
  17. return NumeroString;
  18. }


Título: Re: Ayuda codigo convertir numero entero a string
Publicado por: vangodp en 3 Abril 2014, 21:10 pm
ves si te explica bien te entierran en respuestas jeje :laugh:
Este es el mejor foro ^^  ;-)


Título: Re: Ayuda codigo convertir numero entero a string
Publicado por: ivancea96 en 3 Abril 2014, 22:13 pm
Creo que se explicó bastante bien, Vangodp. Si lo tuyo son ganas de... e.e


Título: Re: Ayuda codigo convertir numero entero a string
Publicado por: leosansan en 3 Abril 2014, 23:37 pm
Como anotación, te diré que eso ya está implementado en la librería estándar:
Código
  1. #include <sstream>
  2.  
  3. //...
  4.  
  5. stringstream linea;
  6. linea<<Numero;
  7.  
  8. cout<<linea.str()<<endl;

Pues tal como lo pones me sale un número raro, sin dejarme introducir el número.

Sé que el fallo lo tengo yo, pero ¿dónde?.

Saludos!.


Título: Re: Ayuda codigo convertir numero entero a string
Publicado por: vangodp en 3 Abril 2014, 23:59 pm
Creo que se explicó bastante bien, Vangodp. Si lo tuyo son ganas de... e.e
No tengo ni idea a que te refieres con "ganas de...." Si me explicas mejor puedo contestarte como sea debido.
Citar
Hola, les pido una ayuda sobre un código que hice para convertir un numero entero a string. El código puede trabajar tanto con números negativos como positivos(aunque solo lo tengo implementado para números positivos). El tema es que no me arroja nada por la salida estandar..HELP! (soy aprendiz en C++)
No se tu seras muy inteligente y tal pero no he sabido entender lo que quería el compañero.
Pero si que veo tu intención. ¿Dime cual es el problema? :huh:
Si crees que te lo he dicho a ti por que mi mensaje va después del tuyo pues lo siento pero no iba contigo.  :rolleyes:


Título: Re: Ayuda codigo convertir numero entero a string
Publicado por: amchacon en 4 Abril 2014, 00:03 am
Pues tal como lo pones me sale un número raro, sin dejarme introducir el número.

Sé que el fallo lo tengo yo, pero ¿dónde?.

Saludos!.

Pues sin ver el código completo no sé como decirte.

¿Numero esta inicializado no?


Título: Re: Ayuda codigo convertir numero entero a string
Publicado por: ivancea96 en 4 Abril 2014, 00:18 am
No tengo ni idea a que te refieres con "ganas de...." Si me explicas mejor puedo contestarte como sea debido.No se tu seras muy inteligente y tal pero no he sabido entender lo que quería el compañero.
Pero si que veo tu intención. ¿Dime cual es el problema? :huh:
Si crees que te lo he dicho a ti por que mi mensaje va después del tuyo pues lo siento pero no iba contigo.  :rolleyes:

Sí que son ganas, sí e.e


Título: Re: Ayuda codigo convertir numero entero a string
Publicado por: xiruko en 4 Abril 2014, 00:53 am
Hola, por qué no pruebas con sprintf() (http://www.tutorialspoint.com/c_standard_library/c_function_sprintf.htm)?

Código
  1. int a;
  2. char numero[20];
  3. printf("Ingresa un numero entero: ");
  4. scanf("%d ", &a);
  5. sprintf(numero, "%d", a);
  6. printf("Ingresaste: %s\n", numero);

Saludos!


Título: Re: Ayuda codigo convertir numero entero a string
Publicado por: leosansan en 4 Abril 2014, 17:21 pm
Hola, por qué no pruebas con sprintf() (http://www.tutorialspoint.com/c_standard_library/c_function_sprintf.htm)?
...................................
Saludos!

Y que no se olvide de incluir la librería <cstdio> para tal fin.

Saludos!


Título: Re: Ayuda codigo convertir numero entero a string
Publicado por: NanoTech en 7 Abril 2014, 22:42 pm
Gracias pude corregir el problema y obtengo los resultados esperados..se pasaron compañero!!  ;D