Programme pour inverser une chaîne

CCBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire, vous allez apprendre à écrire un programme C pour inverser une chaîne de caractères donnée. Le programme prendra l'entrée de l'utilisateur, inversera la chaîne et affichera le résultat à la console. Ce concept peut être utilisé pour vérifier si une chaîne est un palindrome, car une chaîne palindrome aura la même valeur même après l'inversion.

Note : Vous devez créer le fichier ~/project/main.c vous-même pour pratiquer la programmation et apprendre à le compiler et à l'exécuter avec gcc.

cd ~/project
## créer main.c
touch main.c
## compiler main.c
gcc main.c -o main
## exécuter main
./main

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL c(("C")) -.-> c/BasicsGroup(["Basics"]) c(("C")) -.-> c/ControlFlowGroup(["Control Flow"]) c(("C")) -.-> c/CompoundTypesGroup(["Compound Types"]) c(("C")) -.-> c/UserInteractionGroup(["User Interaction"]) c/BasicsGroup -.-> c/variables("Variables") c/ControlFlowGroup -.-> c/for_loop("For Loop") c/ControlFlowGroup -.-> c/while_loop("While Loop") c/CompoundTypesGroup -.-> c/strings("Strings") c/UserInteractionGroup -.-> c/user_input("User Input") c/UserInteractionGroup -.-> c/output("Output") subgraph Lab Skills c/variables -.-> lab-123323{{"Programme pour inverser une chaîne"}} c/for_loop -.-> lab-123323{{"Programme pour inverser une chaîne"}} c/while_loop -.-> lab-123323{{"Programme pour inverser une chaîne"}} c/strings -.-> lab-123323{{"Programme pour inverser une chaîne"}} c/user_input -.-> lab-123323{{"Programme pour inverser une chaîne"}} c/output -.-> lab-123323{{"Programme pour inverser une chaîne"}} end

Déclarer des variables et lire l'entrée de l'utilisateur

#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);

Dans cette étape, nous déclarons deux tableaux de caractères str et rev, et trois variables entières i, j et count. str est utilisé pour stocker la chaîne d'origine saisie par l'utilisateur et rev est utilisé pour stocker la chaîne inversée. count est utilisé pour suivre la longueur de la chaîne. Nous demandons ensuite à l'utilisateur d'entrer une chaîne à l'aide de printf et la lisons à l'aide de scanf.

Calculer la longueur de la chaîne

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

Dans cette étape, nous utilisons une boucle while pour parcourir la chaîne d'origine jusqu'à ce qu'un caractère nul \0 soit atteint. A chaque itération, nous incrémentons la variable count pour compter le nombre de caractères dans la chaîne. Nous assignons ensuite la valeur de count - 1 à j car les tableaux commencent à l'index 0 et nous voulons que j soit l'index du dernier caractère dans la chaîne d'origine.

Inverser la chaîne

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

Dans cette étape, nous utilisons une boucle for pour parcourir la chaîne d'origine. A chaque itération, nous assignons le caractère à l'index j de la chaîne d'origine à l'index correspondant i dans la chaîne inversée. Nous décrémentons ensuite j et répétons le processus jusqu'à avoir inversé toute la chaîne. Enfin, nous affichons la chaîne inversée à la console à l'aide de printf.

Code complet

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

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

   printf("Entrez une chaîne : ");
   scanf("%s", str);

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

   for (i = 0; i < count; i++) {
      rev[i] = str[j];
      j--;
   }
   printf("Chaîne inversée : %s\n", rev);

   return 0;
}

Récapitulatif

Dans ce laboratoire, vous avez appris à écrire un programme C pour inverser une chaîne donnée. Vous avez appris à calculer la longueur d'une chaîne à l'aide d'une boucle while et à inverser une chaîne à l'aide d'une boucle for et d'une variable d'index. Écrire des programmes pour manipuler les chaînes est une compétence importante en programmation C, et en la maîtrisant, vous pouvez accomplir de nombreuses tâches utiles.