De char a int sin strtol() a mano
Publicado por DanielC (3 intervenciones) el 18/10/2010 19:38:48
Hola a todos
El programa que estoy haciendo intenta pasar de char a int sin utilizar las funciones ya creadas.-
Lo que tengo que validar creo que son 2 cosas.-
s205 No es entero
205s No es entero
20s5 No es entero
Y que el ingreso x teclado no supere el máximo soportado por el tipo int, lo anterior lo dejo para después, lo que necesito es validar que no halla desbordamiento, para ello en cada iteración del bucle sumar enteroFinal + enteroAuxiliar y alojarlo en una variable superior en capacidad a int para que si se pasa del máximo que establece la librería limits.h informar que el ingreso supera el máximo permitido para dicha variable.-
#include <stdio.h>
#include <stdlib.h>
#define men printf("\n Apriete cualquier tecla para cerrar la ventana...");system("pause>null");
int main (void)
{
char temp[11];
int i = 0,enteroAuxiliar = 0,enteroFinal=0;
printf("\n Ingrese un entero:");
fgets(temp, 10, stdin);
for(i=0;i<6;i++)
{
if(temp[i] > 47 && temp[i] < 59)
{
enteroAuxiliar = temp[i] - 48;
enteroFinal=10*enteroFinal+enteroAuxiliar;
}
}
printf("\n Ingreso el entero:%i" ,enteroFinal);
men;
return 0;
}
¿Me podrian decir como puedo hacer esto?
Saludos.
Daniel
El programa que estoy haciendo intenta pasar de char a int sin utilizar las funciones ya creadas.-
Lo que tengo que validar creo que son 2 cosas.-
s205 No es entero
205s No es entero
20s5 No es entero
Y que el ingreso x teclado no supere el máximo soportado por el tipo int, lo anterior lo dejo para después, lo que necesito es validar que no halla desbordamiento, para ello en cada iteración del bucle sumar enteroFinal + enteroAuxiliar y alojarlo en una variable superior en capacidad a int para que si se pasa del máximo que establece la librería limits.h informar que el ingreso supera el máximo permitido para dicha variable.-
#include <stdio.h>
#include <stdlib.h>
#define men printf("\n Apriete cualquier tecla para cerrar la ventana...");system("pause>null");
int main (void)
{
char temp[11];
int i = 0,enteroAuxiliar = 0,enteroFinal=0;
printf("\n Ingrese un entero:");
fgets(temp, 10, stdin);
for(i=0;i<6;i++)
{
if(temp[i] > 47 && temp[i] < 59)
{
enteroAuxiliar = temp[i] - 48;
enteroFinal=10*enteroFinal+enteroAuxiliar;
}
}
printf("\n Ingreso el entero:%i" ,enteroFinal);
men;
return 0;
}
¿Me podrian decir como puedo hacer esto?
Saludos.
Daniel
Valora esta pregunta
0