I wrote a code to simulate receiving NMEA string from my GPS, but faced a problem in parsing the latitude, longitude and date, i want to know what is the problem with the code . here is my code :
void GPS_parseSTR(char *lat,char *lon,char *day,char *month,char *year,char *string){
int i;
for (i=0;i<9;i++)
{
lat[i]=string[i+14];
lat[i+1]='\0';
}
int j;
for (j=0;j<10;j++){
lon[j]=string[j+26];
lon[j+1]='\0';}
int k;
for (k=0;k<2;k++){
day[k]=string[k+49];
day[k+1]='\0';}
int l;
for (l=0;l<2;l++){
month[l]=string[l+51];
month[l+1]='\0';}
int m;
for (m=0;m<2;m++){
year[m]=string[m+53];
year[m+1]='\0';
}
}
int main(){
char lat[9];
char lon[10];
char day[2];
char month[2];
char year[2];
char string[55]=",075747.000,A,2232.8990,N,11405.3368,E,3.9,357.8,260210" ;
GPS_parseSTR(lat,lon,day,month,year,string);
printf("%s\n",lat);
printf("%s\n",lon);
printf("%s\n",day);
printf("%s\n",month);
printf("%s\n",year);
return 0 ;
}
char lat[9+1]; char lon[10+1]; char day[2+1]; char month[2+1]; char year[2+1]; // reserve space for string terminator '\0'
\$\endgroup\$