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).