strncmp函数详解看这一篇就够了-C语言(函数实现、使用用法举例、作用、与strcmp的区别)

strncmp函数详解看这一篇就够了-C语言(函数实现、使用用法举例、作用、与strcmp的区别)首先要明确 strncmp 的功能是 用来比较指定长度两个字符串的大小目录函数介绍与 strcmp 的区别 ACSII 表函数实现 用法示例 结果展示 函数介绍函数原型 intstrncmp constchar str1 constchar str2 size tnum 头文件 include string h 返回值 与 strncmp 相同 str1 str2 则返回 0 string h

首先要明确strncmp的功能是:用来比较指定长度两个字符串的大小

目录

函数介绍

与strcmp的区别

ACSII表

 函数实现:

用法示例:

结果展示:

函数介绍

函数原型:int strncmp(const char* str1, const char* str2, size_t num)
头  文  件:#include

返  回  值:(与strncmp相同)str1 = str2   则返回0,
                   str1 > str2  则返回大于0的值,
                   str1 < str2  则返回小于0的值






strncmp()函数首先将str1字符串的第一个字符的ACSII值减去str2第一个字符的ACSII值(自左向右比较前n个字符,直到出现不同的字符或遇’\0’为止)

若差值为零则继续比较下去;若差值不为零,则返回差值。

特别注意:strncmp可用于比较两个字符串常量或比较数组和字符串常量,不能比较数字等其他形式的参数。

与strcmp的区别

1、先比较一下两个函数传参的不同:

         int My_strncmp(const char* str1, const char* str2, int num)

         int My_strcmp(const char* str1, const char* str2)

        strcmp与strncmp都是用来比较字符串的,区别在于能否比较指定长度字符串,故要多传一个长度参数,这也使得strncmp比strcmp更加精细。

ACSII表

strncmp函数详解看这一篇就够了-C语言(函数实现、使用用法举例、作用、与strcmp的区别)

 函数实现:

//以null结尾的字符串 const修饰防止字符串被修改,进行保护 int My_strncmp(const char* str1, const char* str2, int n) { if (!n) //n=0时,无字符要比,直接return 0 return 0; while (--n && *str1 && *str1 == *str2) //当字符相等且不为’\0‘时比较下个字符,知道n=0比完 { str1++; str2++; } return *str1 - *str2;//字符不相等时,(*str1 - *str2)可以满足返回值正负的需求 }

用法示例:

#include 
  
    #include 
   
     #include 
    
      int My_strncmp(const char* str1, const char* str2, int n) { if (!n) return 0; while (--n && *str1 && *str1 == *str2) { str1++; str2++; } return *str1 - *str2; } int main() { char str1[] = "SSLOVE YOU "; char str2[] = "SORRY"; //经过手算可发现O的ACSII=79,S的ACSII=83,应该返回4 printf("%d\n", My_strncmp(str1, str2,2)); return 0; } 
     
    
  

结果展示:

strncmp函数详解看这一篇就够了-C语言(函数实现、使用用法举例、作用、与strcmp的区别)

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

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

(0)
上一篇 2026年3月17日 下午5:01
下一篇 2026年3月17日 下午5:01


相关推荐

  • jira使用教程管理项目

    jira使用教程管理项目添加工作流 1 点击项目设置 2 点击工作流 然后点击切换方案 3 进入切换方案界面之后 点击工作流 然后点击添加工作流 4 输入工作流名称 点击添加 5 编辑工作流可以导出工作流供别人使用编辑之前添加的工作流提交 bug

    2026年3月19日
    1
  • wmware虚拟系统光盘的问题

    wmware虚拟系统光盘的问题

    2021年11月19日
    45
  • get请求关于url长度过长问题_get请求关于url长度过长问题

    get请求关于url长度过长问题_get请求关于url长度过长问题今天在写一个php相应jsonp请求的功能时,发现当url中包含的请求参数过长时会返回414错误。如下图414Request-URITooLarge414Request-URITooLargenginx在网上查询之后,浏览器和服务器对url长度都有限制,现总结如下。1、IEIE浏览器(MicrosoftInternetExplorer)对url长度限制是2083(2K+53)…

    2022年8月24日
    15
  • 数据结构 Hash表(哈希表)

    数据结构 Hash表(哈希表)参考链接:数据结构(严蔚敏)什么是Hash表要想知道什么是哈希表,那得先了解哈希函数哈希函数对比之前博客讨论的二叉排序树二叉平衡树红黑树BB+树,它们的查找都是先从根节点进行查找,从节点取出数据或索引与查找值进行比较。那么,有没有一种函数H,根据这个函数和查找关键字key,可以直接确定查找值所在位置,而不需要一个个比较。这样就**“预先知道”**key所在的位置,直…

    2022年7月23日
    11
  • 闲谈IPv6-Anycast以及在Linux/Win7系统上的Anycast配置[通俗易懂]

    闲谈IPv6-Anycast以及在Linux/Win7系统上的Anycast配置[通俗易懂]正则安安每晚每隔三小时必然哭闹,我索性也就不睡了,反正也睡不好,起来泡茶,喝酒,作文。浙江温州皮鞋

    2022年5月10日
    53
  • es6模板字符串_js循环字符串

    es6模板字符串_js循环字符串相比ES5的拼接字符串,ES6毫无疑问是简单明了,又清晰可维护。原始的字符串拼接真的是把整个人都拼傻,并且在处理的过程中会出现很多小坑,小问题。$(‘#ulList’).html(`&lt;ul&gt;&lt;li&gt;浙江&lt;/li&gt;&lt;li&gt;杭州&lt;/li&gt;&lt;/ul&gt;`);上面就是用es6的…

    2022年8月21日
    25

发表回复

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

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