Túnel do Tempo: a função itoa()

Em uma discussão no fórum de Programação em C e C++ do Viva o Linux, seu proponente perguntava acerca da função itoa(), desejoso de compreender seu funcionamento. Julguei interessante transportá-la, com algumas melhorias, para este espaço, até porque aqui posso fazer algo que não posso fazer naquele fórum, que é dar um exemplo explícito da implementação com código fonte em C.

[ Hits: 2.681 ]

Por: Paulo em 14/06/2017 | Blog: http://unixntools.blogspot.com.br/


Apresentação do problema



Lá pelos idos de 2013, um usuário do Viva o Linux postou na comunidade "C / C++" mais ou menos a seguinte questão (texto ligeiramente alterado para manter apenas as partes relevantes):

Estou estudando C com um amigo virtual, através da Internet. Ele pediu para fazer um programa para converter números de decimal para binário. Fiz o programa, pegando exemplos da Net com a função itoa(), mas a única coisa que eu aprendi sobre itoa() é que ela converte o número.

Queria saber mais, como ele funciona, pois não acho legal eu passar o código para ele e não saber como funciona, né?

Eis é o código.

#include <stdio.h> #include <stdlib.h> int main(void){ int num; char binario[10]; printf("Digite o número decimal: "); scanf("%d", &num); itoa(num, binario, 2); printf("O número %d em binário é %s. ", num, binario); return 0; }
As páginas apresentam a resposta à dúvida do nosso amigo, e discutem, de passagem, alguns problemas com a função itoa() que ele usou no seu programa, apresentando uma versão ligeiramente melhor.

    Próxima página

Páginas do artigo
   1. Apresentação do problema
   2. A implementação da itoa() do antigo Turbo C (e seus problemas)
   3. Alguns conceitos para a implementação da função
   4. Algoritmo para formação do numeral a partir do valor do número
   5. "my_itoa()", uma implementação segura de conversão de número em string
   6. Variações de "my_itoa()"
   7. Conclusão
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Ponteiros void na linguagem C

Substituindo a biblioteca conio.h no Linux usando ncurses curses.h

Ponteiros void na linguagem C (parte 2)

LivreNFE - O emissor Nfe open source para Linux

Programando em Qt

  
Comentários
[1] Comentário enviado por uNclear em 19/06/2017 - 01:55h

ótimo artigo, quando tiver tempo vou fazer alguns testes

[2] Comentário enviado por uilianries em 19/06/2017 - 11:23h

Muito bem detalhado. Parabéns pelo conteúdo, Paulo.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor HostGator.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Viva o Android

Tópicos

Top 10 do mês

Scripts