Probleme de compréhension isdigit en c++
Bjr, on m'as passé un code que je n'arrives pas à comprendre .
Le voici :
Code:
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