Mostrar texto/string ao contrário

Trago um exercício resolvido simples (tanto o enunciado, quanto a resolução), mas que traz dificuldade por se tratar da manipulação de textos, e isso normalmente traz algumas questões dificultadoras.

Enunciado: faça um algoritmo que leia um texto e mostre o texto ao contrário.

A solução é mostrada nas linguagens Python, C e C++. A solução é bem parecida nas três linguagens.

Solução em C

#include <stdio.h>
#include <string.h>
int main(void) {
    char palavra[100];
    fgets(palavra,100,stdin);
    printf("%s-%i", palavra, strlen(palavra)-1);

    for (i=strlen(palavra)-2; i >=0; i--) {
        printf("%c", palavra[i]);
    }
    return 0;
}

Solução em C++

Solução em Python

Para a solução em Python é importante saber que a função range() também pode ser utilizada de forma decrescente. Veja que a função é definida como range(start,end,step). Se utilizar um step negativo será gerado os números em ordem decrescente.

palavra = input()

for i in range(len(palavra)-1,-1,-1):
  #print(i,palavra[i])
  print(palavra[i], end = '')

Veja que a solução tem muitos -1 no range(). Isso porque: é preciso diminuir uma unidade do tamanho da palavra (porque o índice da string começa em zero); o passo -1 é para ter gerar valores decrescentes; o final em -1 é necessário porque senão o for iria parar com o valor 1 para a variável i, o que é insuficiente para chegar na primeira posição do vetor (posição zero).

Share

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.