Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Propia funcion atoi

Estas en el tema de Propia funcion atoi en el foro de C/C++ en Foros del Web. Hace unos días en una carpeta de la facultad encontré una serie de ejercicios de programación para realizar y los voy a ir haciendo en ...
  #1 (permalink)  
Antiguo 06/12/2011, 16:22
 
Fecha de Ingreso: febrero-2011
Ubicación: Paraguay
Mensajes: 59
Antigüedad: 13 años, 2 meses
Puntos: 1
De acuerdo Propia funcion atoi

Hace unos días en una carpeta de la facultad encontré una serie de ejercicios de programación para realizar y los voy a ir haciendo en el tiempo libre que disponga, si alguien quiere ir agregando cosas o aportar ideas para mejorarlo me lo dicen:
El primero era hacer la función atoi propia para convertir una cadena de texto a un numero entero..les pongo lo que hice..
Un saludo
Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <limits.h>
  5.  
  6. #define longMaxInt 10
  7.  
  8. int strToInt(char* cad, int next, int multip);
  9. int convertir(char* cad, int inf, int next, int multip);
  10. int toInt(char caracter);
  11.  
  12. int main(int argc, char* argv[]) {
  13.     char cadena[longMaxInt];
  14.     int cadToNum=0;
  15.    
  16.     // Leer la cadena
  17.     printf("Ingresa la cadena: ");
  18.     gets(cadena);
  19.    
  20.     // Convertir a entero
  21.     cadToNum = strToInt(cadena, strlen(cadena)-1, 1);
  22.    
  23.     // Imprimir resultado
  24.     if (cadToNum <= INT_MAX) {
  25.         printf("Numero Convertido : %d\n", cadToNum);
  26.     } else {
  27.         printf("El numero esta fuera del rango de enteros\n");
  28.     }
  29. }
  30.  
  31. /* Recibe una cadena y retorna el entero correspondiente */
  32. int strToInt(char* cad, int next, int multip) {
  33.     if(cad[0] == '-') {
  34.         return 0 - convertir(cad, 1, next, multip);
  35.     }
  36.     return convertir(cad, 0, next, multip);
  37. }
  38.  
  39. int convertir(char* cad, int inf, int next, int multip) {
  40.     if(next < inf) {
  41.         return 0;
  42.     }
  43.     return convertir(cad, inf, next-1, multip*10) + toInt(cad[next])*multip;
  44. }
  45.  
  46. /* Recibe un caracter y retorna el numero */
  47. int toInt(char caracter) {
  48.     switch(caracter) {
  49.         case '0':
  50.             return 0;
  51.         case '1':
  52.             return 1;
  53.         case '2':
  54.             return 2;
  55.         case '3':
  56.             return 3;
  57.         case '4':
  58.             return 4;
  59.         case '5':
  60.             return 5;
  61.         case '6':
  62.             return 6;
  63.         case '7':
  64.             return 7;
  65.         case '8':
  66.             return 8;
  67.         case '9':
  68.             return 9;
  69.     }
  70. }
  #2 (permalink)  
Antiguo 06/12/2011, 17:08
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años
Puntos: 228
Respuesta: Propia funcion atoi

Código C:
Ver original
  1. int toInt(char caracter) {
  2.        return caracter - '0';
  3. }

Etiquetas: funcion, programa, propia, string, cadenas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:42.