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 :

Probleme de compréhension isdigit en c++


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 3
    Par défaut Probleme de compréhension isdigit en c++
    Bjr, on m'as passé un code que je n'arrives pas à comprendre .
    Le voici :
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
     
    #include <string.h>
    #include <stdio.h>
    #include <ctype.h>
    #include <stdlib.h>
     
    int main()
    {
      int caract,i,coef;
     
     
    printf("Entrez une phrase,le '.' la terminera .chaque chiffre sera prix comme repetiteur du caractere suivant.\n");
     
    coef = 1;
    caract = getchar();
     
    while(caract != '.') 
        {
           for (i = 0; i<coef;i++)
    	   putchar(caract);
           coef = isdigit(caract) ? caract - '0': 1;
           caract = getchar();
        }
     
    getchar();
    printf("\n");
    system("pause");
    return 0;
    }
    Je peux comprenddre que le isdigt localise le chiffre mais je ne comprend pas comment il permet la répétition du char qui le suit ?

    Si qlq'un pourrait m'expliquez ,ce serait sympa ?merci

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 741
    Par défaut
    Il faudrait que vous preniez un papier et un crayon pour le dérouler pas à pas en simulant ce qui serait affiché si vous tapiez:
    1. a2bc.
    2. 5a6bc.

    Ce qui devrait (sur mon papier) donne
    1. a2bc. => a2bbc
    2. 5a6b0c. => 5aaaaa6bbbbbb0

    Pourquoi?
    Ce qui est affiché dépend de la valeur de { coef, caract } lors de l'exécution de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for (i = 0; i<coef;i++)
    putchar(caract);
    Ensuite, il faut suivre comment s'effectue leur initialisation.

    Il est remarquable de constater que le contenu de caract est toujours le caractère qui a été lu. La contenu de coef va lui varier entre 1 (le caractère lu n'est pas un chiffre) et la valeur du chiffre lu.
    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. [Thread] probleme de compréhension
    Par tinico dans le forum Débuter avec Java
    Réponses: 6
    Dernier message: 10/04/2007, 14h57
  2. [Probleme de Compréhension] Nom des dossier
    Par brak__ dans le forum Windows Vista
    Réponses: 9
    Dernier message: 27/02/2007, 09h37
  3. [Mapping] probleme de compréhension
    Par chaby dans le forum Hibernate
    Réponses: 5
    Dernier message: 10/11/2006, 11h55
  4. probleme de compréhension de proxy
    Par Mut dans le forum Applications
    Réponses: 3
    Dernier message: 11/01/2006, 12h24
  5. Réseau....probleme de compréhension
    Par Mut dans le forum Administration
    Réponses: 7
    Dernier message: 10/06/2005, 16h42

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