首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

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

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

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

strcmp()函数,用于两个字符串的比较。

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

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210201A06KBZ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券