#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;
}
Input
$GPRMC,123519,A,4807.038,N,01131.000,E
Expected Output
Time: 12:35:19 Latitude: 4807.038 N Longitude: 01131.000 E