#include <stdio.h>
#include <string.h>
void parse_gprmc(char *nmea)
{
char field[12][20];
int idx = 0, j = 0;
for (int i = 0; nmea[i] != '\0' && idx < 12; ++i)
{
if (nmea[i] == ',')
{
field[idx][j] = '\0';
idx++;
j = 0;
}
else
{
if (j < 19)
field[idx][j++] = nmea[i];
}
}
field[idx][j] = '\0';
char *t = field[1];
printf("Time: %.2s:%.2s:%.2s\n", t, t+2, t+4);
printf("Latitude: %s %s\n", field[3], field[4]);
printf("Longitude: %s %s\n", field[5], field[6]);
}
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