单片机中接收到奥串口的指令一般为字符串,如果使用strncmp比较是否为我们的指令集中的指令,则不能区分大小写,这里可以使用strcasecmp( )函数和strncasecmp( )函数,来对接收到的字符串指令进行接收比较,并且可以不区分大小写,包含头文件include“stdio.h”
下面对strcasecmp( )函数和strncasecmp( )函数的原型以及应用进行介绍:
strcasecmp( )函数说明:
strcasecmp()用来比较参数s1和s2字符串,比较时会自动忽略大小写的差异。
返回值 若参数s1和s2字符串相同则返回0。s1长度大于s2长度则返回大于0 的值,s1 长度若小于s2 长度则返回小于0的值.
#include ”stdio.h“
#include “string.h”
#include ”ctype.h“
int strcasecmp(const char *s1, const char *s2)
{
int c1, c2;
do {
c1 = tolower(*s1++);
c2 = tolower(*s2++);
} while(c1 == c2 && c1 != 0);
return c1 - c2;
}
int main(void)
{
int n = 4;
char str1[] = "Acef";
char str2[] = "ACEFd";
printf("strcasecmp(str1, str2) = %d/n", strcasecmp(str1, str2));
return 0;
}
strncasecmp()函数说明:
strncasecmp()用来比较参数s1和s2字符串前n个字符,比较时会自动忽略大小写的差异
返回值 :若参数s1和s2字符串相同则返回0 s1若大于s2则返回大于0的值 s1若小于s2则返回小于0的值
#include ”stdio.h“
#include “string.h”
#include ”ctype.h
int mystrncasecmp(const char *s1, const char *s2, int n)
{
int c1, c2;
do {
c1 = tolower(*s1++);
c2 = tolower(*s2++);
} while((--n > 0) && c1 == c2 && c1 != 0);
return c1 - c2;
}
int main(void)
{
int n = 4;
char str3[] = "ABCf";
char str4[] = "abcd";
printf("mystrncasecmp(str3, str4, n) = %d/n", mystrncasecmp(str3, str4, n));
return 0;
}
上一篇:keil写STM32程序出现literaltreatedas"longlong"
下一篇:stm32使用SDIO方式+FATFS读写内存卡
推荐阅读
史海拾趣
Analog Microelectronics GmbH是一家德国的半导体公司,专注于开发和生产模拟集成电路(ICs),以及为汽车、工业和医疗等领域提供解决方案。以下是Analog Microelectronics GmbH公司发展的相关故事:
创立与早期发展:Analog Microelectronics GmbH成立于1984年,总部位于德国巴伐利亚州的兰格维塔赫镇。公司的创始人致力于开发高质量的模拟集成电路,以满足市场对精密电子元件的需求。在创立初期,公司主要专注于生产模拟传感器和信号处理器件。
技术创新与产品优化:Analog Microelectronics GmbH在技术创新方面持续投入,不断改进和优化其产品线。公司注重研发和设计,致力于提供高性能、高精度和可靠性的模拟集成电路产品。公司的产品包括压力传感器、温度传感器、加速度传感器、电流传感器等,广泛应用于汽车电子、工业自动化、医疗器械等领域。
市场拓展与客户合作:Analog Microelectronics GmbH通过与全球各行业的客户建立长期稳定的合作关系,不断拓展市场份额和业务范围。公司在欧洲、亚洲和北美等地区设立了销售办事处和代表处,加强了与客户的沟通和服务能力,提高了产品的市场竞争力。
质量控制与认证:Analog Microelectronics GmbH严格遵循国际质量管理体系标准,对产品的生产过程进行严格控制和管理。公司获得了ISO 9001质量管理体系认证,确保产品质量稳定可靠。此外,公司的产品也符合汽车行业的相关认证标准,如ISO/TS 16949等,为客户提供高品质的产品和服务。
持续发展与未来展望:作为一家成熟的模拟集成电路供应商,Analog Microelectronics GmbH将继续致力于技术创新和产品研发,以满足不断变化的市场需求。公司将继续加强与客户和合作伙伴的合作关系,拓展业务领域,为全球客户提供更加优质的解决方案和服务。
近年来,集创北方在电子行业的地位日益稳固。从2019年到2021年,公司的营收实现了飞跃式增长,从14.47亿元增长至56.74亿元,复合增长率高达98%。这一成绩的背后,是公司不断创新、积极应对市场变化的结果。
2013年,ELESTA公司更名为ELESTA GmbH,这一品牌重塑标志着公司进入了新的发展阶段。同时,ELESTA也开始实施全球化战略,积极拓展国际市场,通过不断提升产品质量和服务水平,赢得了全球客户的信赖和认可。
BTCPower深知技术创新是公司发展的核心动力。因此,公司不断加大研发投入,积极引进和培养高素质的研发人才。同时,公司还建立了完善的研发体系和创新机制,鼓励员工提出新的想法和创意。这些举措使得BTCPower在技术创新方面始终保持领先地位。
为了进一步扩大市场份额和提升技术实力,ELANTEC积极寻求收购和整合的机会。2003年,ELANTEC成功收购了美国半导体公司Intersil的移动通信部门,获得了先进的移动通信技术。随后,ELANTEC又陆续收购了多家半导体公司,包括NEC电子的半导体业务部门和三菱电机的半导体业务部门等。这些收购和整合不仅增强了ELANTEC的技术实力,还扩大了其市场份额。
ETI Systems公司自创立之初,就专注于研发具有创新性的电子产品和解决方案。在公司发展的早期,它推出了一款高性能的无线通信设备,该设备采用了当时最先进的信号处理技术,极大地提升了数据传输的效率和稳定性。这一创新产品不仅帮助ETI Systems在市场上获得了良好的口碑,也引领了整个行业的技术发展方向。
真有效值(RMS)信号隔离放大器用于失真正弦波信号,以及方波、矩形波、三角波、锯齿波、梯形波、阶梯波等非正弦波信号的测量。 普通直流电压表只能测量直流电压信号,而测量交流信号必须增加AC/DC转换电路。目前常用的交流电压表为降低成本和 ...… 查看全部问答∨ |
|
单片机第五课:单片机的内外部结构分析(三) 一、延时程序分析 上一次课中,我们已经知道,程序中的符号R7、R6是代表了一个个的RAM单元,是用来放一些数据的,下面我们再来看一下其它符号的含义。 DELAY: MOV R7,#250 ;(6) D1: MO ...… 查看全部问答∨ |
pxa303 boot启动 全局变量被意外修改 惊险刺激 请大虾解答。 在boot启动的过程中发现全局变量莫名其妙地被修改了。 因为这个时候系统还没有跑起来,所以我分析故障有三个原因。 指针越界访问: 因为修改前后根本没有修改变量的任何代码,所以这个我基本排除。 中断服务程序:   ...… 查看全部问答∨ |
我的导师是搞软件的,现在有一个项目。我们的开发板是以一款TI公司的DSP芯片(以ARM926EJ-S为内核)为主的板子,我看到里面有LCD的控制器。板上有LCD的接口,现在我们需要一款液晶,3.8寸以上的,怎么把液晶连到开发板上,接口是怎么 ...… 查看全部问答∨ |
要在wince嵌入式平台上采集图像,想利用vfw来采集图像(听说wince下可以用vfw),在用PB生成系统时,我将 Core OS\\CEBASE\\Graphics and Multimedia Tecnologies下的Audio,Graphics,Media全选上了,但在自己 导出的 ...… 查看全部问答∨ |
windML 3.0 也装了, windML库函数也生成了, 为什么"complete 2d library"组件总是斜体的,不能包含,而其它的windML组件都能正常包含呢,比如"necessary 2d library",… 查看全部问答∨ |
|
TAP6或7的寄存器访问时序中,有一个错误如下(我认为是错误) 见下图片2 jpg 而参照的下图3.jpg是cirrus公司的ARM9有关IDE接口时序的不同(DIOR-/DIOW-这个引脚时序和标准相反) 因为DIOR-/DIOW-是低电平有效,我们以ARM9时序中写寄存器分析:首 ...… 查看全部问答∨ |
Error connecting to the target: Error 0x80002240/-121 Fatal Error during: Initialization, OCS, Control, This error was generated by TI\'s USCIF driver. SC_ERR_CMD_HANDLE <-121> A bad controller handle has been given to a ...… 查看全部问答∨ |