Bonjour !!!
Alors, j'ai une nouvelle question =)

J'ai un programme tiré d'un livre qui sert à compter le nbre d'espace blanc, ça nous donne ça :

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
#include <stdio.h>
 
main()
{
  int c,i,nwhite,nother;/*i:compteur; nwhite pour espaces blancs; nother pour compter autres*/
  int ndigit[10]; /**vecteur declare - compte le nbre de 0, 1...9 (premier element compte le nbre de 0)*/
 
  nwhite = nother = 0;
 
  for (i = 0;i<10;++i)
    ndigit[i] = 0;
 
  while ((c=getchar()) !=EOF)
    {
    if (c>='0' && c<='9')
    /*fais reference au code ASCII*/
        ++ndigit[c-'0']; /*rajoute un a l'element du vecteur correspondant au chiffre*/
    else if (c==' '|| c== '\n' || c=='\t')
        ++nwhite;
      else
        ++nother;
    }
    printf("digitos=");
    for(i=0;i<10;++i)
      printf("%d",ndigit[i]);
    printf(",espacios blancos = %d, otros = %d \n",nwhite,nother);
 
}
Où donc digit et une liste, est chaque élément de sa liste compte le nombre de 0, 1...9 qu'il y a dans un texte.
Ma question est la suivante :
pour ce if là :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
   if (c>='0' && c<='9')
    /*fais reference au code ASCII*/
        ++ndigit[c-'0']; /*rajoute un a l'element du vecteur correspondant au chiffre*/
Je comprends le principe mais 'aimerais savoir s'il est possible de faire ça autrement ? En fait, moi j'aurais plutôt l'idée de faire :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
   if (c>='0' && c<='9')
    /*fais reference au code ASCII*/
        ++ndigit[c]
Ainsi, si par exemple c = 3, alors le 4éme élément de la liste ndigit sera incrémenté. Ce qu'on cherche à faire !
Sommes nous obligé de passé par le code ASCI ?
En fait je mélange un peu avec Python je sais... mais je suis perturbée