Título: [ANSI C] IntToStr - StrToInt
Publicado por: The Swash en 7 Enero 2011, 22:07 pm
#include <stdio.h> #include <stdlib.h> #include <string.h>
/* @autor: The Swash @function: IntToStr - StrToInt @language: ANSI C */ int StrToInt(char * string); char * IntToStr(int number);
int main() { printf("char: %s \n",IntToStr(123)); printf("int: %i",StrToInt("123")); return 0; }
int StrToInt(char * string) { int i, n, temp = 0; for (i = 0; i < strlen(string); i++) { if ( ( (int)string[i]< 48 ) || ( (int)string[i]>57 ) ) // Si el caracter es distinto a un numero { return -1; //Salimos y retornamos -1 } else { for (n = 48; n <= 57; n++) // Hacemos un bucle desde el numero 0 al 9 basandonos en su valor ASCII { if (string[i] == n) // Si el valor ASCII del caracter actual correspondi al valor ASCII de un numero { temp += (string[i] - 48); // Obtiene y suma el número actual al buffer temp *= 10; // Aumenta una cifra al resultado } } } } return temp / 10; // Retorna el buffer, quitandole la última cifra que sobra }
char * IntToStr(int number) { int num, len = 0, i = 0, altnumber = number; char * buffer; if (number == 0) { return "0"; } else { while (number > 0) { num = number%10; number = number / 10; len++; } buffer = (char *) malloc (len); memset(buffer,0,strlen(buffer)); num = 0; i = len -1; while (altnumber> 0) { num = altnumber%10; altnumber = altnumber / 10; buffer[i] = (num + 48); i--; } return buffer; }
} Bueno chicos, estaba aprendiendo ejecucion de una aplicacion con parametros por consola, y me surgió la necesidad de convertir tipos, me sirvió itoa y atoi pero no son standares, así que decidí hacer mis propias funciones a pura cabeza. Linkgl dedicado para vos =). Espero les sea de utilidad. PD: Gracias osnaraus por explicarme el pequeño detalle Saludos.
Título: Re: [ANSI C] IntToStr - StrToInt
Publicado por: Oblivi0n en 7 Enero 2011, 22:16 pm
atoi si es standart (stdlib.h) y puede suplir a StrToInt(char *string) :silbar:
Título: Re: [ANSI C] IntToStr - StrToInt
Publicado por: The Swash en 7 Enero 2011, 22:29 pm
Mmm bueno, creo que me he equivocado entonces, pero igual por lo menos espero que la idea valga!
Saludos y gracias por comentar!
Título: Re: [ANSI C] IntToStr - StrToInt
Publicado por: Oblivi0n en 7 Enero 2011, 22:37 pm
Si jaja esta muy bien, una vez hice algo similar, pero para pasar de entero a char, dividia al numero entre sus digitos, y luego hacia un switch xD, que tiempos aquellos....
Buen code, un saludo!
|