字符串也可以比较大小?C语言的strcmp函数

boyanx6个月前技术教程44

在C语言中,因为字符串没有被封装成对象,所以直接用==、!=比较。C语言提供了一个用于字符串比较的函数类型strcmp。

注意,字符串和字符完全不同,因为不同的编译器实现问题,返回值的情况也有所变化。

strncat()函数,用于两个字符串的拼接。
(1)函数原型

 int  strcmp(const char *_Str1,const char *_Str2);

(2)头文件

string.h

(3)功能

比较const char *_Str1,const char *_Str2所指的字符串内容,并根据第一个遇到的不相等字符ASCII值差确定返回值。
相等:0
_Str大于_Str2:1
_Str小于_Str2:-1

(4)基础实例代码

	printf("%d\n",strcmp("a","a"));
	printf("%d\n",strcmp("z","a"));
	printf("%d\n",strcmp("a","z"));

(5)输出情况


(6)基础实例代码2:

	printf("%d\n",strcmp("aa","az"));
	printf("%d\n",strcmp("az","aa"));

(7)输出情况2:


(8)问题1:字符char可以比较吗?
回答:不可以,函数要求输入的是一个字符数组的首地址char*。而不是一个字符类型char。本质上,第一个是地址,第二个是一个整数类型(-128~127)

(9)问题2:返回值1,-1的取值是如何进行的
回答:根据两个字符数组最先出现的,相同下标的不同字符对应的ASICC码,做减法。

const char *_Str1-const char *_Str2

(10)问题3:返回值可以为32、-45、111吗?
回答:可以,有的编译器这个函数的实现,是根据ASICC码的差值。

相关文章

JavaScript字符串方法:localeCompare()

一、简介localeCompare() 方法用于比较两个字符串,并根据本地排序规则确定这两个字符串的顺序。这可以用于排序,例如在表格中按字母顺序排列行。二、语法 string.localeCompar...

西门子1200PLC进阶篇—比较指令的操作及使用

西门子1200PLC进阶篇——比较指令的操作及使用上一篇陪我们一起学习了计数器。今天我们一起来学习比较指令的操作及使用。在西门子S7-1200PLC中,常用的比较指令有六种。我们可以在“基本指令”的“...

90%的梯形图编程新手“卡”在比较指令?资深工程师2个案例教会你

PLC比较指令编程在众多工业场景中有非常广泛的应用,特别是在生产线上,它可是质量检测的得力助手!凭借对参数的精准判断,巧妙地掌控着产品的流向。一旦产品重量落入设定的阈值范围,便迅速开启合格品处理流程;...

STM32-详解C语言数组指针比较字符串原理

代码原理解析这段代码实现了一个名为 Buffercmp 的函数,用于比较两个 uint32_t 类型数组(通过指针操作)的内容是否相等,核心逻辑基于指针遍历和逐元素比较 :函数参数: const ui...

C/C++编程笔记:C语言字符串比较函数,超详细,值得收藏

void *memset(void *dest, int c, size_t count);将dest前面count个字符置为字符c.返回dest的值.void *memmove(void *dest...

S7*200SMART-比较指令解析

比较指令是将两个操作数或字符串按指定条件进行比较,当比较条件成立时,其触点闭合,后面的电路接通;当比较条件不成立时,比较触点断开,后面的电路不接通。比较指令的运算符有6种,其操作数可以为字节、双字、整...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。