#include <stdio.h>
#include <string.h>
void parse_gprmc(char *nmea) {
// Your logic here
char *str;
str = nmea;
int len;
for(len=0;str[len]!='\0';len++);
//printf("%d",len);
int i=7;
int date=0;
while(str[i] != ','){
date++;
i++;
}
//printf("\n %d",date);
int j=7;
char d[date+2];
for(i=0;i<date+2;i++){
if(i==2 || i== 5) {
d[i]=':';
j--;
}
else d[i] = str[j];
j++;
}
d[i]='\0';
i=16;
int lat=0;
while(str[i]!=','){
lat++;
i++;
}
j=16;
char l[lat+2];
for(i=0;i<lat;i++){
l[i] = str[j];
j++;
}
l[i] = ' ';
i++;
l[i] = str[25];
j = 27;
i=27;
int lon=0;
while(str[i] != ','){
lon++;
i++;
}
char longti[lon+2];
for(i=0;i<lon;i++){
longti[i] = str[j];
j++;
}
longti[i] = ' ';
i++;
longti[i] = str[len-1];
i++;
longti[i] = '\0';
//print
printf("Time: %s\n",d);
printf("Latitude: %s\n",l);
printf("Longitude: %s\n",longti);
}
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