"); //-->
C 只要涉及到通信协议, 主要就是看,对字符串处理函数的灵活应用。现归纳几条在实际项目中应用的的。
sprintf 主要来封装 数据,进行TCP 传输。
sprintf((char*)sendDataBuf, "{\"code\":102,\"sn\":\"%d\",\"plantId\":%d,\"humidity\":%d,\"illumination\":%d,\"temperature\":%d,\"lightTime\":%d}\n", \
sncode,PLANT_ID,tempHumi,tempLight,tempTemp,TimeOfLight);
strstr 查找一个字符串是否是另一个字符串的子串 ,很好的应用是,蓝牙传过来一堆数据,包头是重要的命令识别点,通过strstr 来区分不同的命令。
strncpy(command,p_data,length);
for(t=0;t<7;t++)
{
temp = strstr(command,COMMAND_ARRAY[t]);
if(temp != NULL)
{
command_ID=t;
break;
}
}
3.strncmp 比较两个字符串是否相同
err_code = strncmp(PASSWORD_DEFAULT,command,length);
4.一些mem的常用函数。
void *memcpy(void *dest, const void *src, size_t n);
从源src所指的内存地址的起始位置开始拷贝n个字节到目标dest所指的内存地址的起始位置中。
int memcmp(const void *buf1, const void *buf2, size_t count);
比较buf1和buf2前面count个字节大小.
返回值< 0, 表示buf1小于buf2;
返回值为0, 表示buf1等于buf2;
返回值> 0, 表示buf1大于buf2.
int memicmp(const void *buf1, const void *buf2, size_t count);
比较buf1和buf2前面count个字节. 与memcmp不同的是, 它不区分大小写.
返回值同上.
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。