Comment inverser une chaîne en C

How Reverse String C



Dans le codage de chaîne, l'inversion de chaîne est un sujet crucial. Il existe également plusieurs méthodes pour inverser une chaîne, chacune ayant une logique différente. Cet article vous montrera comment inverser correctement une chaîne pour utiliser plusieurs approches et raisonnements distincts avec et sans nécessiter de fonctions prédéfinies. Chaque fois que la technique d'inversion d'une chaîne est appliquée dans une chaîne d'entrée unique particulière, le texte qu'un consommateur fournirait dans un ordre spécifique sera complètement inversé. Dans l'exemple ci-dessous, différentes alternatives d'inversion d'une chaîne avec C ont été utilisées.

Lors de la mise en œuvre de ce guide, nous avons travaillé sur le système Linux Ubuntu 20.04 configuré sur Virtual Box. Tout en travaillant sur un système Linux, nous faisions la plupart de nos installations et requêtes sur le shell du terminal. Par conséquent, ouvrez le terminal shell par un raccourci Ctrl+Alt+T ou recherchez-le via une barre de recherche d'application sous la zone d'activité du bureau Ubuntu. Il est nécessaire de mettre à jour votre système au préalable via la requête de mise à jour apt. Il vous demandera le mot de passe utilisateur actuel pour exécuter la mise à jour. Par conséquent, ajoutez un mot de passe et appuyez sur le bouton Entrée.







$ sudo apt mise à jour



Comme nous avons utilisé le langage de programmation C pour élaborer le concept d'inversion des chaînes dans le système Ubuntu 20.04, un compilateur C devrait être installé sur leur système Ubuntu. Assurez-vous donc d'installer le compilateur GCC sur votre système via la requête ci-dessous.



$ sudo apt installer gcc

Exemple 01 : Utilisation de la boucle For

Après l'installation et la configuration du compilateur GCC et la mise à jour du package apt, il s'agit de créer un nouveau fichier. Ce fichier doit être de type C ; par conséquent, utilisez la commande touch pour créer un fichier new.c comme ci-dessous. Ce fichier sera désormais utilisé dans notre code lors de l'implémentation des programmes de reverse string.





$ touchez nouveau.c

Vous pouvez maintenant ouvrir ce fichier pour le modifier ou le coder par un éditeur Nano intégré à votre système Linux Ubuntu 20.04. Par conséquent, essayez les instructions ci-dessous dans votre shell pour le faire.



$ nano nouveau.c

Le nouveau fichier de type C nouvellement créé a été ouvert dans le GNU Nano Editor du système Ubuntu 20.04. Vous devez y écrire un script C, comme présenté dans l'image de capture d'écran ci-dessous. Laissez-nous détailler ce code pour votre meilleure compréhension. Au début d'un code, nous avons inclus deux bibliothèques. La bibliothèque stdio.h a été utilisée pour prendre les entrées et afficher les sorties, et l'autre bibliothèque string.h a été utilisée pour utiliser toutes sortes de chaînes dans notre code. Tout le travail d'inversion d'une chaîne sera effectué dans la méthode main() d'un code C. Nous avons déclaré une chaîne de type de caractères str de taille 50. Cela signifie qu'une chaîne de plus de 50 caractères ne peut pas être utilisée dans ce code. Après cela, nous avons déclaré deux variables de type entier. La variable l a été utilisée pour collecter la longueur d'une chaîne str et la variable I sera utilisée comme initialiseur dans la boucle for. Ensuite, nous avons utilisé une instruction printf pour imprimer un texte sur la chaîne d'entrée du shell, indiquant à un utilisateur d'ajouter une valeur à une variable de chaîne. La méthode scanf() a été utilisée pour saisir l'utilisateur au moment de l'exécution et enregistrer cette valeur dans une chaîne str. La fonction strlen() a été utilisée pour vérifier la longueur d'une chaîne str qui a été ajoutée par un utilisateur au moment de l'exécution et l'enregistrer dans une variable l'. Ensuite, nous avons initialisé une boucle for pour inverser la chaîne str. Vous pouvez voir que l'initialiseur I' prend la valeur d'une variable l pour inverser le sens d'une chaîne. Ensuite, il imprime les caractères d'une chaîne str' un par un renversement. Dans la dernière, la méthode principale est terminée. Enregistrez ce fichier en utilisant Ctrl+S et quittez-le via Ctrl+X.

Il est maintenant temps de compiler le code et de vérifier sa sortie. Par conséquent, la compilation a été effectuée par la requête gcc indiquée ci-dessous avec le nom d'un fichier new.c.

$ gcc nouveau.c

Lorsque la compilation réussit, cela signifie qu'il n'y a pas d'erreur dans notre code. Exécutons notre fichier par une requête.out dans le shell comme suit :

$./à.dehors

Le processus d'exécution demandera à l'utilisateur d'ajouter une chaîne. Nous avons ajouté I-Am-Aqsa-Yasin et appuyé sur Entrée. Vous pouvez voir qu'il renvoie l'inverse d'une chaîne à la ligne suivante.

Exemple 02 : Utilisation de l'échange

Dans cet exemple, nous utiliserons la méthode d'échange pour inverser l'ordre d'une chaîne. Par conséquent, ouvrez à nouveau le fichier new.c en utilisant l'éditeur nano comme suit :

$ nano nouveau.c

Le fichier a maintenant été ouvert dans l'éditeur nano GNU ; nous devons mettre à jour le fichier de code avec le script ci-dessous dans la capture d'écran. Nous avons d'abord inclus le fichier d'en-tête d'entrée et de sortie standard dans notre code en utilisant un mot-clé #include. Nous avons défini une méthode Reverse() selon l'utilisation de la technique d'échange. Nous avons initialisé trois variables de type entier new, I et swap. La première boucle for est utilisée pour vérifier si la chaîne s est vide ou non. La boucle for suivante est utilisée pour l'itération, et dans son corps, nous avons échangé les valeurs à l'aide de variables new et swap. Il convient de noter que l'inversion d'une chaîne de longueur n ne prend que n/2 tours. Une fois que les chaînes ont été échangées, vous devrez à nouveau boucler pour afficher la chaîne inversée, ce que nous faisons dans notre application en utilisant une troisième boucle for. La fonction Reverse() doit être appelée depuis le programme principal interne. Vous avez indiqué ce que votre logiciel exécute avec printf dans le contexte de main(). Après cela, vous avez utilisé scanf() pour obtenir l'entrée de l'utilisateur et invoqué la méthode Reverse(). Maintenant, enregistrez à nouveau le fichier en utilisant Ctrl+S et quittez l'éditeur nano par le raccourci Ctrl+X et revenez au shell du terminal.

Compilez d'abord le code par une requête gcc comme ci-dessous.

$ gcc nouveau.c

Exécutez maintenant le fichier de code en utilisant la même instruction ./a.out.

$./à.dehors

Il vous demandera d'entrer la valeur de la chaîne. Nous avons ajouté AqsaYasin et obtenu son inverse.

Exemple 03 : Utilisation de la récursivité

Dans cet exemple, nous utiliserons la récursivité pour inverser une chaîne ajoutée par un utilisateur. Par conséquent, ouvrez à nouveau le fichier.

$ nano nouveau.c

Ce programme affiche Entrez une phrase : Une méthode Reverse() est alors utilisée. La lettre initiale saisie par un utilisateur est enregistrée en c grâce à cette méthode. Reverse() est exécuté à nouveau si l'argument est autre chose que (nouvelle ligne). Cette procédure se poursuit jusqu'à ce que l'utilisateur appuie sur la touche Entrée. Chaque fois que l'utilisateur appuie sur Entrée, la méthode Reverse() imprime le texte dans l'ordre inverse. Enregistrez et fermez le fichier.

Compilez d'abord le code, puis exécutez-le en utilisant les commandes précédentes comme suit :

$ gcc nouveau.c

$./à.dehors

Vous pouvez voir qu'il prend l'entrée d'un utilisateur sous la forme d'une phrase de chaîne entière, puis inverse l'ordre de cette phrase.

Conclusion:

Enfin, nous avons fait trois exemples pour élaborer sur l'inversion d'une entrée de type chaîne avec différentes méthodes, par exemple, en utilisant la boucle for, en utilisant la récursivité et en utilisant swap.