待输入字符的长度未知,不大于10
假设输入"mnjhg"
则我设unsigned char lk[10]={'0'};
然后输入的字符赋值到lk里
然后我这样写判断
if(lk=="mnjhg00000")
{
DATA_SEND_TO_LCD('X');
}
if(lk=="mnjhg00000")
{
DATA_SEND_TO_LCD('X');
}
然后实践证明是错误的
求救!!最后可以做到
lk=="mnjhg" 这样对比
单片机C语言字符串对比问题
答案:6 悬赏:10
解决时间 2021-03-21 05:47
- 提问者网友:低唤何为爱
- 2021-03-20 22:21
最佳答案
- 二级知识专家网友:滚刀废物浮浪人
- 2021-03-20 23:57
C语言字符串对比可以调用标准库函数strcmp。
该函数声明在string.h中,形式为
int strcmp(char *a, char *b);
返回值有三种情况,1,0或-1.
其比较原则为:
1 从第一个字符开始按照ascii码值比较,如果a的比b的大,返回1;如果a的比b的小,返回-1;如果相等,继续比较下一个字符。
2 当遇到任意一个字符串达到尾部(值为\0),退出比较过程。
3 如果长度相等,即二者均达到\0,返回0,此时表示二者相等。
4 如果a的长度大,返回1,否则返回-1。
该函数声明在string.h中,形式为
int strcmp(char *a, char *b);
返回值有三种情况,1,0或-1.
其比较原则为:
1 从第一个字符开始按照ascii码值比较,如果a的比b的大,返回1;如果a的比b的小,返回-1;如果相等,继续比较下一个字符。
2 当遇到任意一个字符串达到尾部(值为\0),退出比较过程。
3 如果长度相等,即二者均达到\0,返回0,此时表示二者相等。
4 如果a的长度大,返回1,否则返回-1。
全部回答
- 1楼网友:我的任性你不懂
- 2021-03-21 06:08
== C不能重载操作符的
用strcmp 函数吧
- 2楼网友:一只傻青衣
- 2021-03-21 04:52
通常单片机与pc机进行数据传输采用了串行通讯!首先你应该了解清楚rs232通讯协议,什么波特率啊,开始位,停止位这些 这个去百度收。再结合一个小软件“串口调试助手” 单片机开发常用的, 用这个电脑就可以接收和发送串口数据了
其实串口就是按照8位(一个字符)来传送数据的
其实了解了通讯协议就比较简单了
- 3楼网友:余生继续浪
- 2021-03-21 03:12
要写for循环判断,不能直接用==,也不能用strcmp等标准库里面的函数
- 4楼网友:丢不掉的轻狂
- 2021-03-21 01:47
对比 长度对比还是大小写对比,请明示
长度对比有专门的函数,计算出字符串长度,对比
大小写对比可以用指针的方式,一一对比。
- 5楼网友:萌萌哒小可爱
- 2021-03-21 00:07
字符串的比较需要一个个字符比较,不能用直接==判断。
如果支持strcmp函数的,可以直接用这个函数
如果不支持的,可以自己写
char *ls = "mnjhg00000"; // 比较用的字串
char *a = lk, *b = ls;
bool bSame = TRUE;
while (*b!='\0') {
if (*a++ != *b++) {
bSame = FALSE; break;
}
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯