#include <stdio.h> #include <string.h> void parse_gprmc(char *str) { // Your logic here int i=7,num=0,j=0,k=0; char time[20],lat[20],lon[20]; while(str[i]!='\0'){ if (i<13) { if(j==2) { if(i<12) { time[k]=':'; k++;} j=0; } time[k]=str[i]; j++; k++; if(i==12){ time[k]='\0'; k=0;} } else if (i>=16 && i<=25 ){ if (str[i]==',') lat[k]=' '; else lat[k]=str[i]; k++; if(i==25) { lat[k]='\0'; k=0;} } else if(i>26){ if (str[i]==',') lon[k]=' '; else lon[k]=str[i]; k++; if(i==38) { lon[k]='\0'; k=0;} } i++; } printf("Time: %s\n",time); printf("Latitude: %s\n",lat); printf("Longitude: %s",lon); } 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