#include <stdio.h> #include <string.h> void parse_gprmc(char *nmea) { char str[7][20]; int i=0, j=0; char *token; token=strtok(nmea,","); for( j=0;*(token+j)!='\0';j++){ str[i][j]=*(token+j); } str[i][j]='\0'; for(int i=1;i<7;i++){ token=strtok(NULL,","); for( j=0;*(token+j)!='\0';j++){ str[i][j]=*(token+j); } str[i][j]='\0'; } char time[8]; int c=0; for(int i=0;i<8;i++){ if(i==2||i==5){ time[i]=':'; } else{ time[i]=str[1][c++]; } } printf("Time: %s\n",time); printf("Latitude: %s %s\n",str[3],str[4]); printf("Longitude: %s %s\n",str[5],str[6]); } 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