历史上的今天
返回首页

历史上的今天

今天是:2024年10月06日(星期日)

2018年10月06日 | stm32指令集合不区分大小写

2018-10-06 来源:eefocus

单片机中接收到奥串口的指令一般为字符串,如果使用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; 


推荐阅读

史海拾趣

东软载波(EastSoft)公司的发展小趣事

凭借卓越的产品性能和技术实力,东软载波获得了多项荣誉和认证。公司被评为“国家绿色工厂”,多款产品通过国内外权威认证。同时,公司还荣获了多项行业奖项和荣誉称号,如“2022 PLC互联互通·基石奖”、“2022年山东民营企业新一代信息技术行业领军10强”等。这些荣誉的获得充分证明了东软载波在电子行业中的领先地位和实力。

Cristek Interconnects Inc公司的发展小趣事

面对日益复杂的供应链环境,Cristek Interconnects Inc公司进行了深入的供应链优化。公司与多家优质供应商建立了长期稳定的合作关系,确保了原材料的稳定供应和质量可靠。同时,公司还引入先进的供应链管理系统,提高了供应链的透明度和效率,为公司的快速发展提供了有力保障。

AUK Contractors Co Ltd公司的发展小趣事

AUK Contractors Co Ltd成立之初,电子市场正处于技术革新的热潮中。公司凭借对新技术敏锐的洞察力,成功研发出一款具有颠覆性的电路板设计,显著提高了电子设备的性能和稳定性。这一创新不仅赢得了客户的广泛认可,还为公司赢得了多个重要合同,从而奠定了在电子行业中的坚实地位。

Gang Song Electronics Co Ltd公司的发展小趣事

在加入Telit后,GainSpan的技术和产品迅速在全球范围内得到推广和应用。Telit凭借其强大的市场网络和品牌影响力,将GainSpan的低功耗WiFi模组带到了更多的国家和地区。特别是在北美、欧洲和亚洲等物联网市场发展迅速的地区,GainSpan的技术和产品更是成为了众多企业和项目的首选。通过全球化布局,Telit进一步巩固了其在物联网市场的领先地位。

EiKO Global LLC公司的发展小趣事

EiKO Global LLC,简称EiKO,成立于XXXX年,由一群热衷于照明科技的先驱者共同创立。公司初期专注于照明产品的研发与生产,致力于为全球用户提供高质量的照明解决方案。EiKO凭借对市场的敏锐洞察力和技术创新,迅速在北美市场崭露头角。

在创立初期,EiKO便确立了以“质量第一、客户至上”为经营理念的方针。通过引进先进的生产设备和技术,严格把控产品质量,EiKO的照明产品逐渐赢得了消费者的信赖。同时,EiKO还积极拓展市场,与多家知名企业和零售商建立了合作关系,产品销售网络遍布全球。

博林(BL)公司的发展小趣事

随着全球环保意识的不断提高,博林公司积极响应号召,将绿色环保理念融入到产品设计和生产过程中。公司采用环保材料和节能技术,努力降低产品的能耗和排放。同时,博林公司还加强了对废弃电子产品的回收和处理工作,实现了资源的循环利用。这些举措不仅提升了博林公司的品牌形象,也为其在可持续发展的道路上奠定了坚实基础。

需要强调的是,以上故事是基于一般性的行业知识和假设构建的,并不直接代表博林公司的实际发展经历。博林公司的具体发展历程和故事可能涉及更多的细节和复杂性,需要进一步的了解和研究。

问答坊 | AI 解惑

基于51单片机的数字信号发生器

本帖最后由 paulhyde 于 2014-9-15 04:15 编辑 基于51单片机的数字信号发生器 关键词:51 单片机,UART 通讯,模拟开关,波形转换  …

查看全部问答>

程序编译问题

有一个问题想请教一下高手,就是ADS1.2工程中建立了多个.C和.S文件,那么可不可以编译生成.BIN文件时只选择其中几个文件(如只编译主程序文件或启动文件),然后把生成的几个.BIN文件分别烧写到FLASH中指定的地址,这样程序的连接会不会有问题,若是不行请 ...…

查看全部问答>

初学Zigbee(MiWi),有前辈给指点下如何快速上手不?

-Micrchip MiWi solution. -Demo board都有了 -相关文档也看了不少,总觉得比较浅,望有经验的前辈指点下接下来怎样更全面的学习…

查看全部问答>

准备发起xds-mini(xds100v2改进版)团购

虽然前面做的xds-mini算上人力成本,严重赔钱了 现在依然开始准备团购的事宜 团购产品考虑贴上EEWorld的标, SOSO帮问问看可不可以呀 团购说明: 目前,我的净器件成本约为100元左右,为什么不是五六十,咱没量,你懂的 团购打算出去贴,这样 ...…

查看全部问答>

【求助】关于MSP430的BSL下载问题。

产品已设计完成,现在想改为BSL下载,但遇到如下问题: CPU用是149,BSL接口是自己制作的,按网上流行推荐电路,P1.1 接PC的RXD;P2.2接PC的TXD,RST,和TCK都相应连接,采用串口取电的方式,正负电压分别大约是10V和-8V,并将CPU板的3.3V引入接口 ...…

查看全部问答>

跟您一起做实验——ADUC系列的调试报告

ADuC8XX UART Emulation Many customers have puzzles about the application of the ADuC8XX UART Emulation. This document introduces the steps about how to realize it. Using UART Emulation can save cost and make emulation easy ...…

查看全部问答>

封贴

封贴了,不传了。 [ 本帖最后由 南盗 于 2013-12-15 14:33 编辑 ]…

查看全部问答>

【TI 无线主题征集】+CC2500在无线答题器中的应用

本帖最后由 digitaltek 于 2014-10-31 11:58 编辑      A:概述            在考试的时候,特别是英语考试的时候都有选择题,一般我们都是涂答题卡,然后上交后,由读卡器来读取答 ...…

查看全部问答>