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

 C Discussion :

explication code pour récupérer le 1er caractère d'une chaîne de caractère


Sujet :

C

  1. #1
    Membre éclairé
    Homme Profil pro
    sans emploi
    Inscrit en
    Février 2014
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2014
    Messages : 365
    Par défaut explication code pour récupérer le 1er caractère d'une chaîne de caractère
    Bonjour,

    Dans un exercice corrigé il y a le code suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    #include <stdio.h>
    #include <string.h>
    int main(void)
    {
     
        // definition des variables
        char Num_Sec[14];
        int Sexe;
     
        // saisie NUM SS
        printf("entrez votre num de ss:");
        // exemple 2600775110018
        scanf("%s", Num_Sec);
        printf("votre num de sec soc est: %s \n", Num_Sec);
     
        // recuperation du chiffre 1 = sexe
        Sexe=Num_Sec[0]-48;
        printf("votre sexe est: %d \n", Sexe);
    Le code fonctionne bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    entrez votre num de ss:2600775110018
    votre num de sec soc est: 2600775110018 
    votre sexe est: 2
    mais je ne comprends pas le -48 dans merci

  2. #2
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 747
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 747
    Par défaut
    C'est de la mauvaise programmation

    Le vrai code est Sexe = (Num_Sec[0] - '0');. 48 c'est le code ASCII du caractère '0'.

    Dans le code ASCII tous les chiffres se suivent.
    Donc, pour convertir le caractère en chiffre ou vice versa, on n'a qu'à soustraire/ additionner le caractère '0' (c'est 1 translation mathématique classique)

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 801
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Quand tu saisis "2600775110018" au clavier, tu saisis des caractères qui sont stockés sous forme de valeur ascii. Le caractère '2' a pour valeur ascii 50. Si tu veux obtenir la valeur numérique 2, il faut lui retrancher 48 (qui, comme le dit foetus, étant la valeur ascii du caractère '0', sera plus lisible si on écrit ... - '0').

    En C tout est nombre. Mais ces nombres peuvent s'exprimer selon plusieurs notations. Exemple 48=0x30=060='0'.
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  4. #4
    Membre éclairé
    Homme Profil pro
    sans emploi
    Inscrit en
    Février 2014
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : sans emploi
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2014
    Messages : 365
    Par défaut
    merci

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 02/05/2015, 17h21
  2. code pour récupérer valeur du formulaire fck
    Par ideal23 dans le forum Langage
    Réponses: 6
    Dernier message: 17/02/2011, 18h38
  3. [RegEx] Récupérer le 1er caractère non-html
    Par Xenon03 dans le forum Langage
    Réponses: 6
    Dernier message: 21/10/2010, 20h37
  4. Code pour récupérer un fichier
    Par Senki dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/07/2007, 00h44
  5. [VBA-A]Un code pour récupérer un type de donnée
    Par KEROZEN dans le forum VBA Access
    Réponses: 5
    Dernier message: 14/04/2006, 16h56

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