记录一个使用atoi函数将字符串转为整型的错误问题
memcpy(&buf_rx_frq[0],&buf[15],4);
rx_frq=atoi(buf_rx_frq);
memcpy(&buf_mixing_channel[0],&buf[20],2);
rx_mixing_channel=atoi(buf_mixing_channel);
memcpy(&buf_rx_bandwith[0],&buf[22],2);
rx_bandwith=atoi(buf_rx_bandwith);
memcpy(&buf_rx_channel[0],&buf[24],2);
rx_channel=atoi(buf_rx_channel);
这样转换出来的结果,各种修改测试结果都是错的,最终确定是字符串缺少结束符导致的。
修改后如下所示
memcpy(&buf_rx_frq[0],&buf[15],4);
buf_rx_frq[4]='\0';
rx_frq=atoi(buf_rx_frq);
memcpy(&buf_mixing_channel[0],&buf[20],2);
buf_mixing_channel[2]='\0';
rx_mixing_channel=atoi(buf_mixing_channel);
memcpy(&buf_rx_bandwith[0],&buf[22],2);
buf_rx_bandwith[2]='\0';
rx_bandwith=atoi(buf_rx_bandwith);
memcpy(&buf_rx_channel[0],&buf[24],2);
buf_rx_channel[2]='\0';
rx_channel=atoi(buf_rx_channel);