Bonjour, voici mon 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
19
 
#include<stdlib.h>
#include<stdio.h>
 
#define SIZE 10
 
int main(void)
{
  char * s="1 2 3 4 5 6 7 8", *p=s;
  double tab[SIZE];
  unsigned count=0;
  while(p!=NULL)
  {
    tab[count++]=strtod(p,&p);
    printf("p = %s\n",p);
  }
 
  return 0;
}
il n'y a rien de bien compliqué : je rentre tous les chiffres de la string s dans mon tableau tab. Ma sortie est la suivante :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
p =  2 3 4 5 6 7 8
p =  3 4 5 6 7 8
p =  4 5 6 7 8
p =  5 6 7 8
p =  6 7 8
p =  7 8
p =  8
p = 
p = 
p = 
p = (null)
En fait ma question est : comment faire pour que mon while s'arrête dès que le dernier chiffre de ma string s (ici le chiffre 8) ait été stocké dans mon tableau tab ?
Une solution consisterait à calculer la longueur de la chaine, faire une boucle for etc... mais y a-t-il un autre moyen ?

Merci.