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 31 32 33 34
| const char *maChaineUdp = "23.165313, 2.461, 789.1131323123, 41.23, 58., 0.\n" ;
float nombreRecu[20] ;
int nbNombreRecu = 0 ;
// Pointeur sur un séparateur
char *ptrSeparateur = (char*)maChaineUdp ;
do {
float value = 0. ;
// Si valeur trouvée, l'attribuer au tableau ...
if(sscanf(ptrSeparateur, "%f", &value)==1)
nombreRecu[nbNombreRecu++] = value ;
// Sinon sortie de la boucle
else break ;
// Recherche du séparateur valide (ici une virgule)
ptrSeparateur = strchr(ptrSeparateur, ',') ;
// Si trouvé, ptrSeparateur doit pointer sur le caractère suivant
if(ptrSeparateur!=NULL) ptrSeparateur++ ;
// Recommencer tant qu'il y a des séparateurs et des cellules de libre
} while(ptrSeparateur!=NULL && nbNombreRecu<20) ;
// Affichage
if(nbNombreRecu) {
int i ;
printf("Il y a %d nombres trouvés :\n", nbNombreRecu) ;
for(i=0; i<nbNombreRecu; i++)
printf("\tnombreRecu[%d] = %g\n", i, nombreRecu[i]) ;
}
else
printf("Aucun nombre n'a été trouvé !\n") ; |
Partager