Código
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <math.h> int main() { char cad[10]={' '}; int c=0,n=0 /*lo usamos para acumular*/,tam,i,num; // num[1] lo convertiria en un vector o arreglo // tam=sizeof(cad); la funcion sizeof siempre te devolvera el tamanio total de la variable (dependiendo del tipo) for(i=tam-1; i>=0; i--) { if ((cad[i]<='9') && (cad[i]>='0')) num=cad[i]-48; else if((cad[i]=='a') || (cad[i]=='A')) num=10; else if((cad[i]=='b') || (cad[i]=='B')) num=11; else if((cad[i]=='c') || (cad[i]=='C')) num=12; else if((cad[i]=='d') || (cad[i]=='D')) num=13; else if((cad[i]=='e') || (cad[i]=='E')) num=14; else if((cad[i]=='f') || (cad[i]=='F')) num=15; c++; } return 0; }
nota: la variable cad al ser un arreglo de caracteres, se puede utilizar como el texto completo, o por cada posición o byte, utilizando un subindice, ejemplo cad[1], lo que se rescata de ahí, es el carácter ASCII que representa al carácter contenido.
ya que los números en la tabla ASCII están representados de el (ASCII-48) "0" al (ASCII-57) "9", al restarle 48 consigues su valor o representación numérica.
buena suerte, y adelante con mas códigos, que es la única forma de aprender.