Implemente a função char*Inverte(char*S) que cria dinamicamente uma string contendo a string s invertida.

Passo 1

Fala aí! Essa aqui é bem básica, pra testar se estamos sabendo como fazer alocação dinâmica de memória. Perceba que, como insinuado pelo enunciado, devemos criar uma string dinâmica, o que isso quer dizer?

Bom, quando declaramos uma string, geralmente precisamos informar seu tamanho, no entanto, em casos como esse, dependemos do usuário para nos informar qual será esse tamanho. Portanto, declaramos uma string de forma dinâmica para que seu tamanho seja definido no decorrer da execução do programa.

E para fazer isso, usamos o comando malloc. Se liga como vai ficar a declaração das nossas variáveis:

Declaramos um ponteiro para char s_invertida, que irá nos retornar uma string com os mesmos caracteres de s, porém posicionados de trás para frente. Repare que, como não sabemos o tamanho da string que vamos inverter, vamos usar o malloc para alocar um espaço de memória suficiente para armazenar pelo menos o tamanho da própria s (strlen(s)).

Passo 2

Beleza, seguindo em frente, vamos utilizar algumas funções que vão facilitar bastante a nossa vida. Se liga:

A função strcpy simplesmente copia a string s para a s_invertida. Depois, chamamos strrev para inverter a ordem dos caracteres copiados.

Para finalizar, basta retornar o de s_invertida para que possamos receber este valor quando chamarmos a função Inverte lá no main. Quando se conhece algumas funções prontas à nossa disposição, programar fica bem mais fácil, né?

Resposta