#include <stdio.h>
#include <string.h>
void parse_gprmc(char *nmea) {
// Your logic here
char fields[6][20];
int field_num = 0;
int char_idx = 0;
char *ptr = nmea;
while (*ptr != ',' && *ptr != '\0') ptr++;
if (*ptr == ',') ptr++;
while (*ptr != '\0' && field_num < 6) {
if (*ptr == ',') {
fields[field_num][char_idx] = '\0';
field_num++;
char_idx = 0;
} else {
fields[field_num][char_idx++] = *ptr;
}
ptr++;
}
if (char_idx > 0) {
fields[field_num][char_idx] = '\0';
}
printf("Time: %.2s:%.2s:%.2s\n", fields[0], fields[0]+2, fields[0]+4);
printf("Latitude: %s %s\n", fields[2], fields[3]);
printf("Longitude: %s %s\n", fields[4], fields[5]);
}
int main() {
char nmea[100];
fgets(nmea, sizeof(nmea), stdin);
parse_gprmc(nmea);
return 0;
}
Input
$GPRMC,123519,A,4807.038,N,01131.000,E
Expected Output
Time: 12:35:19 Latitude: 4807.038 N Longitude: 01131.000 E