[C] Ré-écrire une chaîne avec un caractère de décalage pour chaque lettres

Présentation
Cette fonction C vous permettra de ré-écrire entièrement une chaîne de caractère passé en paramètre mais avec un décalage.
Par exemple :
"abc defg!!"
deviendra :
"bcd efgh!!"
Téléchargement
Compatibilité
Linux Windows
0  2 
Téléchargé 38 fois Voir les 5 commentaires
Détails
Avatar de Martin Lestas
Membre éprouvé
Voir tous les téléchargements de l'auteur
Licence : Gratuit
Date de mise en ligne : 16 octobre 2015




Avatar de BufferBob BufferBob - Expert éminent https://www.developpez.com
le 15/10/2015 à 20:22
salut,

pour la petite info, c'est ce qu'on appelle une substitution mono-alphabétique, en l'occurrence le chiffre de César
Avatar de picodev picodev - Membre émérite https://www.developpez.com
le 15/10/2015 à 23:55
Bonjour,
D'un point de vue C, je pourrais te conseiller de ne pas utiliser des chiffres magiques. 'a' est plus clair que 65 par exemple. Tu peux aussi utiliser la fonction isalpha qui te dit si tu as à faire à un caractère alphabétique.
Avatar de Thierry Chappuis Thierry Chappuis - Expert confirmé https://www.developpez.com
le 16/10/2015 à 8:04
A priori, rien ne garantit en C que les codes numériques des caractères 'a' à 'z' ou 'A' à 'Z' se suivent. C'est uniquement garanti pour les chiffres de '0' à '9'. Je sais toutefois que c'est le cas pour pratiquement tous les encodages courants. Enfin, si tu veux poster une fonction qui a un caractère général du point de vue du C, ce n'est pas une bonne idée de faire des suppositions sur la manière dont les caractères sont encodés. Ca dépend beaucoup trop du système et de la platefome.

Avec mes meilleures salutations

Thierry
Avatar de Martin Lestas Martin Lestas - Membre éprouvé https://www.developpez.com
le 16/10/2015 à 12:52
Je ne connaissais pas le chiffre de césar, je vais modifier le code (ce week-end je pense) quand j'aurais le temps afin de pouvoir à l'aide d'un paramètre boolean par exemple choisir si l'on souhaite incrémenter ou décrémenter les caractères et de combien l'on souhaite incrémenter ou décrémenter.

De plus, vous avez raison utiliser les chiffres magiques (table ASCII) n'est pas très visuel. Je modifierais cela aussi.

Merci pour vos commentaires !
Avatar de ternel ternel - Expert éminent sénior https://www.developpez.com
le 16/10/2015 à 13:31
Plutot qu'un booléen, il suffit que le décalage puisse être négatif.
Il y a même une astuce, en tenant compte du fait qu'il y a un nombre fini de lettre (ici, 26)

Par contre, ca va devenir plus drole si tu veux supporter les majuscules.
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.
Contacter le responsable de la rubrique C