#include <stdio.h>
#include <string.h>
void parse_gprmc(char *nmea) {
char time[10],lat[10],lon[10];
int t=0,l=0,lo=0,field=0,i=0;
char ns,ew;
while(nmea[i]!='\0'&& nmea[i]!='\n'){
if(nmea[i]==','){
field++;
i++;
continue;
}
if(field==1){
time[t++]=nmea[i];
}
if(field==3){
lat[l++]=nmea[i];
}
if(field==4){
ns=nmea[i];
}
if(field==5){
lon[lo++]=nmea[i];
}
if(field==6){
ew=nmea[i];
}
i++;
}
time[t]='\0';
lat[l]='\0';
lon[lo]='\0';
printf("Time: %c%c:%c%c:%c%c\n",time[0],time[1],time[2],time[3],time[4],time[5]);
printf("Latitude: %s %c\n",lat,ns);
printf("Longitude: %s %c",lon,ew);
return;
}
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