Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question#include <stdio.h> #include <stdlib.h> #include <conio.h> #include <memory.h> #include <string.h> struct TData { int latDeg; float latMin; char latSens; float lat; int lonDeg; float lonMin; char lonSens; float lon; char szComment[64]; }; int main(int argc, char* argv[]) { // trame initiale const char szTrame[] = "!4112.28N/08403.57W-Test 001234"; // recopie char szCopy[64]; strcpy(szCopy, szTrame); // extraction des champs char *szLat, *szLon, *szComment;szLat strchr(szCopy, '!'); *szLat++ '\0';szLon strchr(szLat, '/'); *szLon++ '\0';szComment strchr(szLon, '-'); *szComment++ '\0'; TData data; // latitude data.latDeg = (szLat[0]-'0')*10+(szLat[1]-'0'); data.latMin = (szLat[2]-'0')*10+(szLat[3]-'0')+(szLat[5]-'0')*0.1f+(szLat[6]-'0')*0.01f; data.latSens = szLat[7]; data.lat = data.latDeg+data.latMin/60;if(data.latSens 'S') data.lat -data.lat; // longitude data.lonDeg = (szLon[0]-'0')*100+(szLon[1]-'0')*10+(szLon[2]-'0'); data.lonMin = (szLon[3]-'0')*10+(szLon[4]-'0')+(szLon[6]-'0')*0.1f+(szLon[7]-'0')*0.01f; data.lonSens = szLon[8]; data.lon = data.lonDeg+data.lonMin/60;if(data.lonSens 'W') data.lon -data.lon; // commentaire strcpy(data.szComment, szComment); return 0; }