Como puedo convertir una cadena string a un numero
Mi pregunta es la siguiente
Quisiera saber como puedo convertir una cadena string, que en si es un arreglo de caracteres a un numero. Por ejemplo, en un string tengo el numero 2850, son cuatro caracteres, y esos 2850, quiero pasarlos a numero. La verdad he probado con la funcion atoi, pero esta funcion solo recibe como parametro un char, y no puedo convertir un string a char por que no me lo permite c++.
La verdad estoy preocupado, tengo que hacer un proyecto de mi clase de Organizacion de Archivos, y tengo esa pequeña duda, que me seria de gran utilidad que alguien que sepa al respecto pueda resolverla.
Sin mas,
Les agradezco de antemano su respuesta
Att,
Rafael Acosta
Honduras, C,A.
Quisiera saber como puedo convertir una cadena string, que en si es un arreglo de caracteres a un numero. Por ejemplo, en un string tengo el numero 2850, son cuatro caracteres, y esos 2850, quiero pasarlos a numero. La verdad he probado con la funcion atoi, pero esta funcion solo recibe como parametro un char, y no puedo convertir un string a char por que no me lo permite c++.
La verdad estoy preocupado, tengo que hacer un proyecto de mi clase de Organizacion de Archivos, y tengo esa pequeña duda, que me seria de gran utilidad que alguien que sepa al respecto pueda resolverla.
Sin mas,
Les agradezco de antemano su respuesta
Att,
Rafael Acosta
Honduras, C,A.
Un string no es un char*, por eso no puedes usar atoi. Es posible que haya un método mejor, pero se me ocurre que lo pases tu a número directamente con algo así:
string mio="873";
int num=0;
int tam=mio.size();
for(int j=0; j<mio.size(); j++){
int k=1;
for(int h=1; h<tam-j; h++) k*=10;
num+=k*(mio[j]-48);
}
cout<<num<<endl;
string mio="873";
int num=0;
int tam=mio.size();
for(int j=0; j<mio.size(); j++){
int k=1;
for(int h=1; h<tam-j; h++) k*=10;
num+=k*(mio[j]-48);
}
cout<<num<<endl;
Gracias a ti Victor y tambien a ti Pigma,
Me sirvio de mucho su consejo, pero encontre una mejor forma pasar el string a char y despues a entero, ya leyendo con un poco mas de calma esto de los strings en un libro de c++ que tengo.
Respecto a lo que me pusistes tu Pigma, esa rutinita esta un poco complicadita, pero es efectiva.
Bueno ahora tengo esta otra interrogante, no se si usted tambien me la pueden contestar, como pasar un numero a string. No se que si lo han hecho, me gustaria que me dieran algun truquin para hacerlo o que me pusieran la rutina.
Lo que me falta en un programa que estoy realizando es convertir un int a string, ya que necesito manipular cada digito del numero.
Por ejem, en el numero 13221, solo necesito extraer el 3221, pero no se me ocurre otra mejor forma como hacer que convirtiendolo a un string, e ingresar individualmente a cada caracter del string.
Les agradeceria su ayuda.
Att,
Rafael Acosta
Honduras, C.A.
Me sirvio de mucho su consejo, pero encontre una mejor forma pasar el string a char y despues a entero, ya leyendo con un poco mas de calma esto de los strings en un libro de c++ que tengo.
Respecto a lo que me pusistes tu Pigma, esa rutinita esta un poco complicadita, pero es efectiva.
Bueno ahora tengo esta otra interrogante, no se si usted tambien me la pueden contestar, como pasar un numero a string. No se que si lo han hecho, me gustaria que me dieran algun truquin para hacerlo o que me pusieran la rutina.
Lo que me falta en un programa que estoy realizando es convertir un int a string, ya que necesito manipular cada digito del numero.
Por ejem, en el numero 13221, solo necesito extraer el 3221, pero no se me ocurre otra mejor forma como hacer que convirtiendolo a un string, e ingresar individualmente a cada caracter del string.
Les agradeceria su ayuda.
Att,
Rafael Acosta
Honduras, C.A.
Como puedo convertir una cadena string a un char en c++ y viseversa un char a un string
Hola, me parece extraño q el atoi no te funcione, de hecho estos son los prototipos:
Int atoi(const char *s);
int _wtoi(const wchar_t *s);
Hago esto :
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
int main(int argc, char* argv[])
{
int n;
char *string = "12345";
n = atoi(string);
printf("cadena = %s entero = %dn", string, n);
getch();
return 0;
}
Y me funciona excelente...
Suerte!
Int atoi(const char *s);
int _wtoi(const wchar_t *s);
Hago esto :
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
int main(int argc, char* argv[])
{
int n;
char *string = "12345";
n = atoi(string);
printf("cadena = %s entero = %dn", string, n);
getch();
return 0;
}
Y me funciona excelente...
Suerte!
