#include <stdio.h> #include <string.h> void parse_gprmc(char *nmea) { char time[10],lat[10],lon[10]; int t=0,l=0,lo=0,field=0,i=0; char ns,ew; while(nmea[i]!='\0'&& nmea[i]!='\n'){ if(nmea[i]==','){ field++; i++; continue; } if(field==1){ time[t++]=nmea[i]; } if(field==3){ lat[l++]=nmea[i]; } if(field==4){ ns=nmea[i]; } if(field==5){ lon[lo++]=nmea[i]; } if(field==6){ ew=nmea[i]; } i++; } time[t]='\0'; lat[l]='\0'; lon[lo]='\0'; printf("Time: %c%c:%c%c:%c%c\n",time[0],time[1],time[2],time[3],time[4],time[5]); printf("Latitude: %s %c\n",lat,ns); printf("Longitude: %s %c",lon,ew); return; } 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