中易网

单片机C语言字符串对比问题

答案:6  悬赏:10  
解决时间 2021-03-21 05:47
待输入字符的长度未知,不大于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语言字符串对比可以调用标准库函数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。
全部回答
== C不能重载操作符的 用strcmp 函数吧
通常单片机与pc机进行数据传输采用了串行通讯!首先你应该了解清楚rs232通讯协议,什么波特率啊,开始位,停止位这些   这个去百度收。再结合一个小软件“串口调试助手”  单片机开发常用的,  用这个电脑就可以接收和发送串口数据了 其实串口就是按照8位(一个字符)来传送数据的 其实了解了通讯协议就比较简单了
要写for循环判断,不能直接用==,也不能用strcmp等标准库里面的函数
对比 长度对比还是大小写对比,请明示 长度对比有专门的函数,计算出字符串长度,对比 大小写对比可以用指针的方式,一一对比。
字符串的比较需要一个个字符比较,不能用直接==判断。 如果支持strcmp函数的,可以直接用这个函数 如果不支持的,可以自己写 char *ls = "mnjhg00000"; // 比较用的字串 char *a = lk, *b = ls; bool bSame = TRUE; while (*b!='\0') { if (*a++ != *b++) { bSame = FALSE; break; } }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
老婆练过跆拳道,打不过她怎么办
济南哪家餐馆有炸荷花
万佳泓不锈钢质量保证书
采购员预借差旅费,所引起的变化是 资产一增
8年级语文 <大道之行也> 翻译
刚买辆二手乐驰,0.8,开着空调根本走动,要
苹果手机已经被锁15分钟,输入正确的密码又被
蓝天儿童职业体验馆怎么样大众点评网
休闲娱乐场所里面都包括什么?
西安到哈密的飞机票多少钱
灵寿京昆高速出口2KM处在什么地方
最近想入个NX300M求高手指教
怎么提高孩子的动手能力?
黄晓明现身奔跑吧兄弟第二季在哪一期?什么时
唯品会15年销售额是多少
推荐资讯
成菱冰柜冬天温度怎么调
一个男的说我让他最感动的话是:我不在乎你结
C059在什么地方啊,我要过去处理事情
我是湖南省常德市石门县的宽带用户,现在开通
“憨噶” 用白话念是什么意思?
从新疆伊犁用邮局邮六十斤棉花到四川广安要花
肝硬化可以长期服用什么药
为什么走在大街上经常看到美女们都戴着口罩
有没有全面介绍动物的网站啊
勿忘国耻手抄报诗歌有哪些
请问孩子用了施可复专业去疤,对今后孩子生育
不是说强电解质不能水解么?那为啥NH4NO3完全
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?