Código
#include<iostream> using namespace std; int atoi(char* string); double atof(char* string); unsigned int strlen(char* string); void itoa( char* string, int n); void reverse(char* string); int main() { char* c = (char*)" -154.456"; double val; cout << (val=atof(c)) << endl; itoa(c,val); cout << c << endl; cin.get(); return 1; } unsigned int strlen(char* string) { // By BlackZeroX ( http://Infrangelux.sytes.net/ ) unsigned int i=0; while (*(string++) != '\0') i++; return i; } void reverse(char* string) { // By BlackZeroX ( http://Infrangelux.sytes.net/ ) char c; unsigned long int i; unsigned long int j; for ( i=0, j=strlen(string)-1; i <j; i++,j-- ) { c=string[i]; string[i]=string[j]; string[j]=c; } } int atoi(char* string) { // By BlackZeroX ( http://Infrangelux.sytes.net/ ) return (int)atof(string); } double atof(char* string) { // By BlackZeroX ( http://Infrangelux.sytes.net/ ) double n, p; int i, s; for ( i=0; string[i]==' ' || string[i]=='\n' || string[i]=='\t'; i++ ); if ( string[i]=='+' || string[i]=='-' ) s=(string[i++]=='+') ? 1:-1; else s=1; for ( n=0 ; string[i]>='0' && string[i]<='9'; i++ ) n = 10*n+string[i]-'0'; if (string[i]=='.') i++; for ( p=1 ; string[i]>='0' && string[i]<='9'; i++ ) { n = 10*n+string[i]-'0'; p *= 10; } return s * n / p; } void itoa( char* string, int n) { // By BlackZeroX ( http://Infrangelux.sytes.net/ ) int i,s; if ((s=n)<0) n = -n; i=0; do { string[i++]= n % 10 + '0'; } while ((n /= 10)>0); if (s<0) string[i++]='-'; string[i]='\0'; reverse(string); }
Dulces Lunas!¡.