gogeta2003
Messages postés13Date d'inscriptionsamedi 29 mars 2003StatutMembreDernière intervention23 mai 2005
-
24 mars 2005 à 22:05
NitRic
Messages postés402Date d'inscriptionmardi 1 mai 2001StatutMembreDernière intervention15 août 2011
-
25 mars 2005 à 03:32
Salut voici mon problème.
char *donnees;
strcpy(donnees,"e;1.2;45;manu");
typedef struct
{
AnsiString val;
float t; int k;
AnsiString type;
}donnees;
J'ai une chaine de caractére qui contient des valeurs intercalées de
(;) et une structure qui contient des AnsiString, float et un int. Je
voudrais récupérer les caractéres de ma chaine dans ma structure mais
sans les points virgule, c'est-à dire comme l'exemple ci-dessous:
NitRic
Messages postés402Date d'inscriptionmardi 1 mai 2001StatutMembreDernière intervention15 août 2011 25 mars 2005 à 03:32
Tu pourais utiliser strtok(), par exemple:
#include <string.h> /* en C */
#include <cstring> /* en C++ */
char * token;
int nItem = 0;
if ( NULL !(token strtok( donnees, ";" )) )
{
do
{
switch ( nItem )
{
case 0:
TaStruct.val = token; break;
case 1:
TaStruct.t = token; break;
case 2:
TaStruct.k = token; break;
case 3:
TaStruct.type = token; break;
default: break;
} while ( ++nItem < 4 && NULL !(token strtok( NULL, ";" )) );
}
if ( nItem != 4 )
{
ERROR - il manque des items
}
c'est très basic comme exemple et comme c'est un exemple, il ne faut pas faire de copy/paste :}. Il n'y à aucune vérification/conversion de donnée dans l'exemple, c'est voulu.
Tu pourais aussi utiliser strchr() ou autre routine du genre, en général c'est assez simple à faire ...