#include <stdio.h>
#include <string.h>
void parse_gprmc(char *nmea) {
// Your logic here
char time[100],lat[100],lon[100];
int index=0;
for(int i=7;i<13;i++){
if(i%2!=0 && i!=7){
time[index]=':';
index+=1;
}
time[index]=*(nmea+i);
index+=1;
}
time[index]='\0';
printf("Time: %s\n",time);
int y=0;
for(int i=16;i<24;i++){
lat[y]=*(nmea+i);
y+=1;
}
lat[y]='\0';
printf("Latitude: %s %c\n",lat,*(nmea+25));
int x=0;
for(int i=27;i<36;i++){
lon[x]=*(nmea+i);
x+=1;
}
lat[x]='\0';
printf("Longitude: %s %c",lon,*(nmea+37));
}
int main() {
char nmea[100];
fgets(nmea, sizeof(nmea), stdin);
parse_gprmc(nmea);
return 0;
}
simple string pointer helped me to solve the problem
Input
$GPRMC,123519,A,4807.038,N,01131.000,E
Expected Output
Time: 12:35:19 Latitude: 4807.038 N Longitude: 01131.000 E