云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

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

jxf315 2025-01-26 22:55:29 教程文章 59 ℃

在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码的差值。

最近发表
标签列表