Hola.
Espero que ahora se entienda mejor lo que quería lograr.-
En cuanto a la función charAint se que existe atoi pero en este caso es para practicar con punteros y funciones.-
Espero sugerencias para optimizarlo.-
#include <stdio.h>
#include <limits.h>
#include <stdlib.h>
#include <string.h>
void charAint(const char[], int* ,int);
void intAbinario(int, int*);
int main(){
char numeroChar[11] = "";
unsigned int ok=0, i=0, longitud=0, numero, *ptrNumero = №
do{
system("CLS");
ok=0;
printf("\n Introduce el numero que deseas convertir a binario\n maximo [%d]...:", INT_MAX);
fflush(stdout);
fgets(numeroChar, 12, stdin);
longitud = strlen(numeroChar);
numeroChar[longitud-1] = '\0';
if(numeroChar[0] == '\0' || numeroChar[0] == '0'){
ok=1;
printf("\n El numero ingresado debe ser mayor a cero\n\n Pulse una tecla para intentarlo nuevamente..."); getchar();
}
else{
for(i=0;numeroChar[i] != '\0'; i++){
if(numeroChar[i] <=47 || numeroChar[i] >=58){
ok=1;
printf("\n Debe ingresar solo numeros\n\n Pulse una tecla para intentarlo nuevamente..."); getchar();
break;
}
}
if(ok==0){
i=0;
if(longitud-1 == 10 && numeroChar[0] >= 2){
i=1;
}
else{
charAint(numeroChar, ptrNumero, longitud);
if(*ptrNumero > INT_MAX){
i=1;
}
}
if(i == 1){
ok=1;
*ptrNumero = 0;
printf("\n El numero ingresado supero el maximo permitido\n\n Pulse una tecla para intentarlo nuevamente..."); getchar();
}
}
}
}while(ok == 1);
intAbinario(numero, ptrNumero);
return 0;
}
void charAint(const char numeroChar[], int *ptrNumero, int longitud){
unsigned auxiliar=0, i=0;
while(i < longitud-1){
auxiliar = numeroChar[i]-48;
*ptrNumero=10* *ptrNumero+auxiliar;
i++;
}
}
void intAbinario(int numero, int *ptrNumero){
char binario[33] = "";
unsigned int i=0, j=0, k=0, temp=0;
do{
binario[i] = '0' + numero%2;
numero = numero/2;
i++;
}while (numero != 0);
binario[i] = '\0';
for (j = 0, k = strlen(binario)-1; j < k; j++, k--){
temp = binario[j];
binario[j] = binario[k];
binario[k] = temp;
}
printf("\n\n En decimal %u --> en binario = %s\n\n", *ptrNumero, binario);
}
OK3NETu, estoy muy entusiasmado con este programa me dio mucha seguridad.-
Saludos.
NOB2014 perdón Daniel
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-