Escreva suas próprias funções de E/S de caractere e de string. Escreva suas próprias versões das funções getchar, putchar e puts descritas na Figura 8.12.
Passo 1
E aí meus queridos!! Tudo bem com vocês??
Hoje vamos fazer um programa para falar sobre as funções getchar, putchar e puts. Bora lá???
Primeiro vamos entender que funções são essas e depois faremos um código para entendermos na prática seu funcionamento.
A função getchar tem a seguinte sintaxe: getchar(); Essa função insere um caractere seguinte da entrada padrão (teclado) e o retorna como inteiro.
A função putchar também tem uma sintaxe parecida: putchar(caractere); Ou seja, ele imprime o caractere e o retorna como inteiro.
E por fim temos a função puts. Sua sintaxe também é tranquila de aprender: puts(string); Ele imprime a string incluindo o ‘\n’. Lembra quando tínhamos que colocar \n quando usávamos o printf? Com essa função não precisamos nos preocupar com isso!!
Agora que sabemos tudo sobre as funções, vamos fazer um código utilizando todas.
Passo 2
Vamos realizar um programa que vai imprimir uma string invertida de acordo com o usuário, utilizando as funções acima!!
Primeiro vamos colocar as bibliotecas

Passo 3
No nosso main precisamos declarar as variáveis que iremos utilizar, um ponteiro e um contador.

Em seguida precisamos pedir para o usuário entrar com uma frase. E adicioná-la caractere por caractere até que ele digite a tecla ENTER (Newline) e finalizamos a string com o caractere ‘\0’. Veja como:

Passo 4
Agora precisamos imprimir a frase original e em seguida ela invertida chamando a função invertida que criamos antes do main.

Mas e como fica a função invertida? Bom, aí é que está o segredo do nosso código!!

A gente adiciona um loop if para verificar se nossa string começa com o caractere nulo ‘\0’. Se sim, ela retornará a string normal. Se não, chamaremos a função novamente até que ela inverta a string e depois a imprime com a função putchar.
Ufa... Acabamos por aqui!! Dê Ctrl+n no seu compilador e bora para o próximo exercício!!
Resposta
E assim ficará nosso código:
