Programa para Inverter uma String

CBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como escrever um programa em C para inverter uma string fornecida. O programa receberá a entrada do usuário, inverterá a string e exibirá o resultado no console. Este conceito pode ser usado para verificar se uma string é um palíndromo, porque uma string palíndroma terá o mesmo valor mesmo depois de invertida.

Nota: Você precisa criar o arquivo ~/project/main.c por conta própria para praticar a codificação e aprender como compilar e executá-lo usando o gcc.

cd ~/project
## create main.c
touch main.c
## compile main.c
gcc main.c -o main
## run main
./main

Declarar variáveis e ler a entrada do usuário

#include <stdio.h>
#include <string.h>

int main() {
   char str[1000], rev[1000];
   int i, j, count = 0;

   printf("Enter a string: ");
   scanf("%s", str);

Nesta etapa, declaramos dois arrays de caracteres str e rev, e três variáveis inteiras i, j e count. str é usado para armazenar a string original inserida pelo usuário e rev é usado para armazenar a string invertida. count é usado para controlar o comprimento da string. Em seguida, solicitamos ao usuário que insira uma string usando printf e a lemos usando scanf.

Calcular o comprimento da string

while (str[count] != '\0') {
   count++;
}
j = count - 1;

Nesta etapa, usamos um loop while para percorrer a string original até que um caractere nulo \0 seja encontrado. Em cada iteração, incrementamos a variável count para contar o número de caracteres na string. Em seguida, atribuímos o valor de count - 1 a j porque os arrays começam no índice 0 e queremos que j seja o índice do último caractere na string original.

Inverter a string

for (i = 0; i < count; i++) {
   rev[i] = str[j];
   j--;
}
printf("Reversed string: %s\n", rev);

Nesta etapa, usamos um loop for para iterar sobre a string original. Em cada iteração, atribuímos o caractere no índice j da string original ao índice correspondente i na string invertida. Em seguida, decrementamos j e repetimos o processo até que tenhamos invertido toda a string. Finalmente, exibimos a string invertida no console usando printf.

Código completo

#include <stdio.h>
#include <string.h>

int main() {
   char str[1000], rev[1000];
   int i, j, count = 0;

   printf("Digite uma string: ");
   scanf("%s", str);

   while (str[count] != '\0') {
      count++;
   }
   j = count - 1;

   for (i = 0; i < count; i++) {
      rev[i] = str[j];
      j--;
   }
   printf("String invertida: %s\n", rev);

   return 0;
}

Resumo

Neste laboratório, você aprendeu como escrever um programa em C para inverter uma string fornecida. Você aprendeu como calcular o comprimento de uma string usando um loop while e como inverter uma string usando um loop for e uma variável de índice. Escrever programas para manipular strings é uma habilidade importante na programação em C, e ao dominá-la, você pode realizar muitas tarefas úteis.