#include <stdio.h> #include <string.h> void split_string(const char *str, char tokens[6][13]) { int i = 0, j = 0; while(*str != '\0'){ if(*str == ','){ tokens[i][j] = '\0'; i++; j = 0; }else tokens[i][j++] = *str; str++; } tokens[i][j] = '\0'; } void parse_gprmc(char *nmea) { char tokens[6][13]; nmea+=7; split_string(nmea, tokens); char *time_str = tokens[0]; printf("Time: %.2s:%.2s:%.2s\n", time_str, time_str + 2, time_str + 4); printf("Latitude: %s %s\n", tokens[2], tokens[3]); printf("Longitude: %s %s", tokens[4], tokens[5]); } 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