Queria saber como se hace para convertir un numero char a int. os pongo un ejemplo
#include <iostream>
using namespace std;
int main(void){
char figura[2]={1,4};
if(figura[1]>=1&&figura[1]<=8)) //quiero que me diga si esta entre el numero 1y8
cout<<"Correcto"<<endl;
else
cout<<"Error"<<endl;
return 0;
}
Con la función atoi:
char *cadena="453423";
int valor=atoi(cadena);
Incluye la biblioteca cstdlib antes.
Un saludo ;)
Buenas tardes,
¿Has probado con la función atoi()?
Quizá algo así:
if(atoi(figura[1]) >= 1 && atoi(figura[1]) <= 8)
cout << "Correcto" <<endl;
Tendrás que incluir la librería correspondiente.
Un saludo.
EDIT: Se me han adelantado. Siento la repetición.
la funcion de atoi ya la sabia, la forma de valenciano013 no me sirve ya que yo solo quiero acceder a la posicion 2 de la cadena.
tengo este caso pero es que no me va
(atoi(figura[1])>=1&&atoi(figura[1])<=8)
Bien, he hecho unas pruebas y aquí tienes el código correcto, comprobado que compila con g++ y funciona bien:
#include <iostream>
#include <stdlib.h>
using namespace std;
int main(void) {
char figura[2]={'1','4'};
if(atoi(figura + 1) >=1 && atoi(figura + 1) <=8)
cout << "Correcto" << endl;
else
cout << "Error" << endl;
return 0;
}
Un saludo.
ahora si que funciona mil gracias Martxel, una duda, porque pusiste (figura + 1) para acceder a la direccion de memoria donde esta almacenado figura[1] ?
"figura" contiene la dirección de figura[0] y "figura + 1" sería la siguiente dirección, esto es, la de figura[1].
Un saludo.