#include <stdio.h> #include <string.h> #include <stdint.h> void print_time(char nmea[6][10]){ printf("Time: %c%c:%c%c:%c%c\n", nmea[0][0], nmea[0][1],nmea[0][2],nmea[0][3],nmea[0][4],nmea[0][5]); } void print_latitude(char nmea[6][10]){ printf("Latitude: %s %s\n", nmea[2], nmea[3]); } void print_longitude(char nmea[6][10]){ printf("Longitude: %s %s\n", nmea[4], nmea[5]); } void parse_gprmc(char *nmea){ char tokens[6][10]; uint8_t row = 0; uint8_t column = 0; char *ptr = nmea; ptr += 7; while(*ptr != 0){ if(*ptr != ','){ tokens[row][column] = *ptr; column++; } else{ tokens[row][column] = '\0'; row++; column = 0; } ptr++; } if(*ptr == '\0'){ tokens[row][column] = '\0'; } print_time(tokens); print_latitude(tokens); print_longitude(tokens); } 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