Défi
É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
\nou 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.