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