#include <stdio.h>
#include <string.h>
void parse_gprmc(char *nmea) {
nmea = nmea + 7;
int count = 0;
char time[16];
char lat[16];
char longitude[16];
for (int i = 0; i < 8; i++){
if (count == 2){
time[i] = ':';
count = 0;
} else {
time[i] = *nmea;
nmea++;
count++;
}
}
time[9] = '\0';
nmea = nmea + 3;
for (int i = 0; i < 10; i++){
// printf("%c \n", *nmea);
if (*nmea == ','){
lat[i] = ' ';
} else {
lat[i] = *nmea;
// printf("here at %d %c \n", i, lang[i]);
}
nmea++;
}
lat[10] = '\0';
nmea++;
for (int i = 0; i < 11; i++){
if (*nmea == ','){
longitude[i] = ' ';
} else {
longitude[i] = *nmea;
}
nmea++;
}
// longitude[0] = *nmea;
longitude[11] = '\0';
printf("Time: %s\n", time);
printf("Latitude: %s\n", lat);
printf("Longitude: %s\n", longitude);
}
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