51单片机用到strcmp比较字符串问题及解决
2017-05-20 10:50
267 查看
目前用单片机来比较两个字符串数组是否一样
这样定义的字符串数组
uchar rec_name[9]={0}; //串口接收到的密码数据
uchar code Passnum[9]={'1','7','0','5','1','9','0','0','1'}; // 设备自身固定密码
if(strcmp((char*)rec_name,(char*)Passnum)==0)
{
SendString("connect ok\r\n");
Pass_flag=0;
}
运行结果,向单片机串口发送170519001 字符串,这个比较函数愣是进不去,后来查找资料发现,定义字符串数组的最后一位必须要加上结束符'\0’,而以“170519001”这种形式存在的字符串自身编译器已经在末尾加上结束符‘\0’;所以立即修改定义的字符串数组后,终于可以正确运行了;
uchar rec_name[10]={0};
uchar code Passnum[10]={'1','7','0','5','1','9','0','0','1','\0'};
这样定义的字符串数组
uchar rec_name[9]={0}; //串口接收到的密码数据
uchar code Passnum[9]={'1','7','0','5','1','9','0','0','1'}; // 设备自身固定密码
if(strcmp((char*)rec_name,(char*)Passnum)==0)
{
SendString("connect ok\r\n");
Pass_flag=0;
}
运行结果,向单片机串口发送170519001 字符串,这个比较函数愣是进不去,后来查找资料发现,定义字符串数组的最后一位必须要加上结束符'\0’,而以“170519001”这种形式存在的字符串自身编译器已经在末尾加上结束符‘\0’;所以立即修改定义的字符串数组后,终于可以正确运行了;
uchar rec_name[10]={0};
uchar code Passnum[10]={'1','7','0','5','1','9','0','0','1','\0'};
相关文章推荐
- 关于字符串比较函数strcmp返回值的问题
- strcmp()字符串比较函数用法问题
- 关于字符串比较函数strcmp返回值的问题
- 解决js中字符串格式的时间比较问题
- Mybatis的if test字符串比较问题,mapper用等于又要用>比较<比较解决冲突
- 字符串比较strcmp()实现及常见问题
- SQLite字符串比较时的大小写问题解决方法
- symbian中文字符串显示问题的解决(转载)
- 关于子函数返回字符串的问题解决办法
- java字符串星号、问号匹配问题解决方法
- 关于Sql Server中字符串比较大小写敏感的问题
- JAVA中文比较问题的分析和解决
- OLEDB方式操作规则EXCEL的字符串的完整写法(解决标题行和列数据类型不一致的问题)
- VC++.NET 2005 几个比较难缠的问题及其解决方法(转)
- 关于“未指定的错误”的问题 的比较正解的解决方法
- 从键盘输入两个字符串,不用字符串函数strcmp()比较两者的大小
- 国际化字符串比较的问题
- 解决水晶报表设计的宽度问题——当显示列比较多的时候
- 用CSS解决中英文混合字符串的截取省略问题的解决办法