#include <stdio.h> #include <string.h> void parse_gprmc(char *nmea) { // Your logic here char *str; str = nmea; int len; for(len=0;str[len]!='\0';len++); //printf("%d",len); int i=7; int date=0; while(str[i] != ','){ date++; i++; } //printf("\n %d",date); int j=7; char d[date+2]; for(i=0;i<date+2;i++){ if(i==2 || i== 5) { d[i]=':'; j--; } else d[i] = str[j]; j++; } d[i]='\0'; i=16; int lat=0; while(str[i]!=','){ lat++; i++; } j=16; char l[lat+2]; for(i=0;i<lat;i++){ l[i] = str[j]; j++; } l[i] = ' '; i++; l[i] = str[25]; j = 27; i=27; int lon=0; while(str[i] != ','){ lon++; i++; } char longti[lon+2]; for(i=0;i<lon;i++){ longti[i] = str[j]; j++; } longti[i] = ' '; i++; longti[i] = str[len-1]; i++; longti[i] = '\0'; //print printf("Time: %s\n",d); printf("Latitude: %s\n",l); printf("Longitude: %s\n",longti); } 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