C语言strncpy函数如何复制数组中指定数据到指定位置?
这是目的位置
u16 syear=2023;
u8 smon=08;
u8 sday=15;
u8 hour=10;
u8 min=56;
u8 sec=20;
这是原位置,inputstrs是网口输入的数据
char inputstr[len1];
且网口输入的数据经过打印显示正确
其中RENEWTIME是关键字,读取到RENEWTIME后后面的位置是时间,代码如下:
if(strncmp(str8,inputstr,9)==0) //这句的意思即为判断是否读取到关键字
{
if(WORKMODE==NONE)
{
strncpy((uint16_t*)syear,&inputstr[9],4);
printf("syear=%d\r\n",syear);
strncpy((uint8_t*)smon,&inputstr[13],2);
printf("smon=%d\r\n",smon);
strncpy((uint8_t*)sday,&inputstr[15],2);
printf("sday=%d\r\n",sday);
strncpy((uint8_t*)hour,&inputstr[17],2);
printf("hour=%d\r\n",hour);
strncpy((uint8_t*)min,&inputstr[19],2);
printf("min=%d\r\n",min);
strncpy((uint8_t*)sec,&inputstr[21],2);
printf("sec=%d\r\n",sec);
RTC_Set(syear, smon, sday, hour, min, sec); /* Setup Time */
}
}
警告信息为
cast to pointer from integer of different size [-Wint-to-pointer-cast]
且无法正常写入,请问一下解决方法