C语言strncmp()函数

C语言strncmp()函数描述 intstrncmp constchar str1 constchar str2 size tn 把 str1 和 str2 进行比较 最多比较前 n 个字节 声明下面是 strncmp 函数的声明 intstrncmp constchar str1 constchar str2 size tn 参数 str1 要进行比较的第一个字符串 str2 要进行比较的第二个字符串 n 要比较的最大字符数 返回值该函数返

描述

int strncmp(const char *str1, const char *str2, size_t n) 把 str1 和 str2 进行比较,最多比较前 n 个字节。

声明

下面是 strncmp() 函数的声明。

int strncmp(const char *str1, const char *str2, size_t n)

参数

  • str1 — 要进行比较的第一个字符串。
  • str2 — 要进行比较的第二个字符串。
  • n — 要比较的最大字符数。

返回值

该函数返回值如下:

  • 如果返回值 < 0,则表示 str1 小于 str2。
  • 如果返回值 > 0,则表示 str2 小于 str1。
  • 如果返回值 = 0,则表示 str1 等于 str2。

实例

下面的实例演示了 strncmp() 函数的用法。

#include 
  
    #include 
   
     int main(void){ /* ANSI码值: A:65 B:66 C:67 ANSI码值: a:97 b:98 c:99 */ char str1[5] = "ABcA"; char str2[5] = "ABcH"; char str3[5] = "ABA"; char str4[5] = "ABC"; char str5[5] = "aBC"; char str6[5] = "ABB"; int ret1 = strncmp(str1,str2,3); int ret2 = strncmp(str3,str4,3); int ret3 = strncmp(str5,str6,3); printf("%d\n",ret1);//0 printf("%d\n",ret2);//-2 printf("%d\n",ret3);//32 return 0; } 
    
  

打印结果:

C语言strncmp()函数

说明:strncmp()strcmp()函数不同,在VScode编译软件里面strcmp()返回的是1、0、-1,strncmp()函数返回的则是ANSI码值。但也有些编译软件strcmp()返回值是ANSI码值,这些都不重要,重要的是知道俩者之间的用法以及区别就可以了。

         在该段代码中strncmp()函数中首先它会去找要比较的俩个字符串是否相同,如果不相同再进行ANSI码值作比较运算。如果超出了strncmp()函数设置的比较字符数,则不再去作比较运算。如果在比较中第一个字符串就不相同,那么只会对第一个字符串作ANSI码比较运算,后面的字符串不论是否相同都不再作比较运算。

代码分析:

         1、从打印结果可以看出第一段ret1返回的比较值是0,因为设置的strncmp()函数比较字符数是3,也就是说它只会对str1、str2前3位作比较运算,由于前3位字符相同所以返回的值是0,后面超出的字符数不再作比较运算。

         2、在第二段ret2返回值是-2,ret2的str3、str4的前俩个字符相同,到了第三个字符的时候一个是A,一个是C,根据ANSI码值A:65-C:67所以得到的返回值是-2。

         3、在第三段ret3返回值是32,ret3的str5、str6的第一个字符就不相同,所以只会对第一个字符串作ANSI码比较运算,即a:97-A:65所以得到的返回值是32,后面的字符串不论是否相同都不再作比较运算。

 

以上就是strncmp()函数使用方式以及说明!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226526.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午10:42
下一篇 2026年3月16日 下午10:42


相关推荐

  • 面试题jmeter怎么做性能测试_web测试面试题

    面试题jmeter怎么做性能测试_web测试面试题面试中遇到的问题:1.如何使用Jmeter进行并发测试2.如何设置并发量为10003.如果http请求每个都不一样,如何配置4.如何设置sessionID一、安装配置1.在Terminal中输入命令:ruby-e”$(curl-fsSLhttps://raw.githubusercontent.com/Homebrew/install/master/…

    2022年9月30日
    5
  • 智能体数据验证:AI Agents for Beginners输入过滤机制

    智能体数据验证:AI Agents for Beginners输入过滤机制

    2026年3月16日
    1
  • 二进制转四进制计算机,计算机进制转换方法

    二进制转四进制计算机,计算机进制转换方法从小我们就开始学数学 数学就有涉及到进制知识 相信大家对于进制都不陌生吧 进制也就是进位制 是一种进位方法 现在大家都有电脑 利用电脑自带的计算机进行进制转换是最简便的方法 下面是由百分网小编为大家准备的计算机进制转换方法 喜欢的可以收藏一下 了解更多详情资讯 请关注应届毕业生考试网 计算机中常用的进制主要有 二进制 八进制 十六进制 学习计算机要对其有所了解 2 进制 用两个阿拉伯数字 0 1 8

    2026年3月18日
    2
  • 史上最简单的 GitHub 教程

    史上最简单的 GitHub 教程1简介  GitHub是一个面向开源及私有软件项目的托管平台,因为只支持Git作为唯一的版本库格式进行托管,故名GitHub。GitHub于2008年4月10日正式上线,除了Git代码仓库托管及基本的Web管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,在GitHub上托管的版本数量非常之多,其

    2022年7月22日
    11
  • 论如何用cmd命令做出数字雨特效「建议收藏」

    论如何用cmd命令做出数字雨特效「建议收藏」大家应该都看过《黑客帝国》这部电影,当时我就震惊了,那个数字雨特效做的太牛逼了!所以我趁着周末的休闲时间,略加研究,找到了用cmd做数字雨特效的方法,只需要三步:Step1首先,我们新建一个后缀名为.txt的文本文档,然后命名(其实命名都无所谓,你高兴就好),双击进入:Step2在里面编写代码:@echooff//这段代码是用来关闭后面的提示语句的titleqwedsazx890//这段代码是设置访问用户的,大可不必,写上也可以,”title”后面的

    2022年5月9日
    180
  • DRF 3.x Filtering 过滤使用示例和配置方法

    DRF 3.x Filtering 过滤使用示例和配置方法重写 BaseFilterBa 并重写 filter queryset self request queryset view 方法 该方法应返回一个经过过滤的新查询集 除了允许客户端执行搜索和过滤外 通用过滤器后端对于限制对任何给定请求或用户应可见的对象也很有用 仅允许用户查看自己对象的过滤器

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号