#include <stdio.h> #include <string.h> void parse_gprmc(char *nmea) { // Your logic here char time[100],lat[100],lon[100]; int index=0; for(int i=7;i<13;i++){ if(i%2!=0 && i!=7){ time[index]=':'; index+=1; } time[index]=*(nmea+i); index+=1; } time[index]='\0'; printf("Time: %s\n",time); int y=0; for(int i=16;i<24;i++){ lat[y]=*(nmea+i); y+=1; } lat[y]='\0'; printf("Latitude: %s %c\n",lat,*(nmea+25)); int x=0; for(int i=27;i<36;i++){ lon[x]=*(nmea+i); x+=1; } lat[x]='\0'; printf("Longitude: %s %c",lon,*(nmea+37)); } int main() { char nmea[100]; fgets(nmea, sizeof(nmea), stdin); parse_gprmc(nmea); return 0; }
simple string pointer helped me to solve the problem
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