#include <stdio.h>
#include <string.h>
#include <stdint.h>
void print_time(char nmea[6][10]){
printf("Time: %c%c:%c%c:%c%c\n", nmea[0][0], nmea[0][1],nmea[0][2],nmea[0][3],nmea[0][4],nmea[0][5]);
}
void print_latitude(char nmea[6][10]){
printf("Latitude: %s %s\n", nmea[2], nmea[3]);
}
void print_longitude(char nmea[6][10]){
printf("Longitude: %s %s\n", nmea[4], nmea[5]);
}
void parse_gprmc(char *nmea){
char tokens[6][10];
uint8_t row = 0;
uint8_t column = 0;
char *ptr = nmea;
ptr += 7;
while(*ptr != 0){
if(*ptr != ','){
tokens[row][column] = *ptr;
column++;
}
else{
tokens[row][column] = '\0';
row++;
column = 0;
}
ptr++;
}
if(*ptr == '\0'){
tokens[row][column] = '\0';
}
print_time(tokens);
print_latitude(tokens);
print_longitude(tokens);
}
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