Dúvida em C

Olá!
Como faço para transforma string em int e vice-versa sem usar as funções itoa e atoi?
Agradeço a atenção.

imagina que vc tem a string “12345”

que é, na verdade, um array {'1', '2', '3', '4', '5', '\0' }

se vc sabe o tamanho dessa string ( se não sabe, use strlen ) vc pode fazer

// supondo que n é um array contendo "12345"
int i, posicao, potencia, numero;
potencia = 1;
numero  = 0;
for(i = 0; i < tamanho; i++){
  posicao = tamanho - i;
  digito = n[ posicao ]
  numero = magica( digito ) * potencia;
  potencia *= 10;
}

ou seja, eu pego cada digito, de traz pra frente, e multiplico pela potencia de 10

5 + 4 * 10 + 3 * 100 + 2 * 1000 + 1 * 10000 = 12345

agora qual a magica? pois bem, um char contem um numero, mas é o valor daquele caracter na tabela ASCII

o valor do numero ‘0’ é x, o valor do numero ‘1’ é x + 1

se vc quer conveterter ‘1’ em 1 vc precisa subtrair x, certo?

valor = digito - '0';

agora basta pensar um pouco e brincar com alguns valores ate o programa ficar redondo

Muito Obrigado!
Abraço.