IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Télécharger C Discussion :

Ré-écrire une chaîne avec un caractère de décalage pour chaque lettre


Sujet :

Télécharger C

  1. #1
    Membre éclairé
    Avatar de Aooka
    Homme Profil pro
    Scripting Powershell & Wlangage
    Inscrit en
    Juillet 2015
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Scripting Powershell & Wlangage

    Informations forums :
    Inscription : Juillet 2015
    Messages : 231
    Par défaut Ré-écrire une chaîne avec un caractère de décalage pour chaque lettre
    Bonjour,

    Je vous propose un nouvel élément à utiliser : Ré-écrire une chaîne avec un caractère de décalage pour chaque lettres

    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!!"

    Qu'en pensez-vous ?

  2. #2
    Expert confirmé Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 041
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 041
    Par défaut
    salut,

    pour la petite info, c'est ce qu'on appelle une substitution mono-alphabétique, en l'occurrence le chiffre de César

  3. #3
    Membre Expert
    Homme Profil pro
    sans emploi
    Inscrit en
    Janvier 2014
    Messages
    539
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2014
    Messages : 539
    Par défaut
    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.

  4. #4
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    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
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  5. #5
    Membre éclairé
    Avatar de Aooka
    Homme Profil pro
    Scripting Powershell & Wlangage
    Inscrit en
    Juillet 2015
    Messages
    231
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Scripting Powershell & Wlangage

    Informations forums :
    Inscription : Juillet 2015
    Messages : 231
    Par défaut
    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 !

  6. #6
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    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.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Écrire une chaîne de caractères
    Par chester89 dans le forum x86 16-bits
    Réponses: 1
    Dernier message: 18/11/2010, 01h54
  2. Réponses: 4
    Dernier message: 06/02/2009, 13h10
  3. [RegEx] Tester une chaîne avec ereg()
    Par Anduriel dans le forum Langage
    Réponses: 4
    Dernier message: 30/04/2006, 12h36
  4. [RegEx] Remplacer une chaîne avec preg_replace
    Par GregPeck dans le forum Langage
    Réponses: 3
    Dernier message: 08/12/2005, 13h21
  5. Chaînes avec des caractères accentués dans Interbase
    Par Invité dans le forum Bases de données
    Réponses: 2
    Dernier message: 04/03/2004, 23h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo