Aller au contenu principal
U/
Chaînes
c

Implémenter ROT13 sur les lettres ASCII

Lire une ligne sur stdin et la réimprimer chiffrée en ROT13 : les lettres A-Z et a-z pivotent de 13 positions, tous les autres caractères restent inchangés.

30 minPublié le 20 mai 2026Proposé par Anonyme

Défi

// Lisez attentivement, codez sur votre machine

Énoncé

Le programme lit une ligne sur stdin (via fgets, taille maximale 1024 octets). Il parcourt chaque caractère et applique le chiffrement ROT13 : une lettre majuscule c devient 'A' + (c - 'A' + 13) % 26, une lettre minuscule c devient 'a' + (c - 'a' + 13) % 26. Les chiffres, espaces, signes de ponctuation et le saut de ligne final sont copiés sans modification. La ligne chiffrée est imprimée sur stdout.

Contraintes

  • Compilé avec gcc -Wall -Wextra -std=c99 -o rot13 rot13.c.
  • Une seule ligne en entrée (terminée par \n ou EOF).
  • Longueur maximale de la ligne : 1023 caractères utiles.
  • Seules <stdio.h> et <string.h> sont autorisées.
  • L'algorithme doit fonctionner sans table de correspondance codée en dur (utiliser l'arithmétique modulaire).

Exemple

Entrée :

Hello, World!

Sortie :

Uryyb, Jbeyq!

Entrée avec chiffres et majuscules :

ROT13 encode 42 fois.

Sortie :

EBG13 rapbqr 42 sbvf.
Espace solution

Proposer une solution

Connectez-vous ou créez un compte pour envoyer votre code (aucune exécution côté serveur — on stocke juste le texte pour la communauté).

// À garder en tête
  • D'abord, faire marcher

    On ne cherche pas à optimiser : d'abord, on fait marcher le truc. Optimiser vient ensuite — et ça aussi, ça s'apprend. (Si un défi porte sur l'optimisation, son énoncé le précise.)

  • Pas de mauvaise réponse

    Il n'y a pas de mauvaise réponse à un défi. Le but, c'est de le faire. Ce qui compte, c'est de s'entraîner.

  • Trop dur ? Au suivant

    Un défi te résiste ? N'hésite pas à en prendre un autre. Ils seront encore là demain.