#include <stdio.h> #include <string.h> void parse_gprmc(char *nmea) { int i,j; char time[50],lat[50],lon[50]; for(i=7,j=0;nmea[i]!=',';i++,j++) { if(j==2 || j==5) { time[j]=':'; i--; } else { time[j]=nmea[i]; } } time[j]='\0'; for(i=16,j=0;nmea[i]!=',';i++,j++) { lat[j]=nmea[i]; } lat[j]='\0'; for(i=27,j=0;nmea[i]!=',';i++,j++) { lon[j]=nmea[i]; } lon[j]='\0'; printf("Time: %s\nLatitude: %s %c\nLongitude: %s %c\n",time,lat,nmea[25],lon,nmea[37]); } int main() { char nmea[100]; fgets(nmea, sizeof(nmea), stdin); parse_gprmc(nmea); return 0; }
Test Cases
Test Results
Input
$GPRMC,123519,A,4807.038,N,01131.000,E
Expected Output
Time: 12:35:19 Latitude: 4807.038 N Longitude: 01131.000 E