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