每天深解一个字符串类函数之strncmp函数

每天深解一个字符串类函数之strncmp函数回顾一下 昨天我们学习了 strcmp 函数 用于比较两个字符串 今天我们来学习 strncmp 用于比较两字符串指定个数的字符 这个函数使得比较两个字符串更加灵活 更具多样性

大家好,欢迎来到IT知识分享网。

目录

前言:

一、引用头文件

二、strncmp函数的作用

三、理解strncmp函数的定义

1、返回类型

2、参数

四、使用strncmp函数

1、编写代码

2、调试运行

五、注意要点 

六、模拟实现


前言:

回顾一下,昨天我们学习了strcmp函数,用于比较两个字符串,今天我们来学习strncmp,用于比较两字符串指定个数的字符,这个函数使得比较两个字符串更加灵活,更具多样性。

一、引用头文件

所有的库函数都要引用头文件,字符串类函数也一样,它们的头文件均为

(string.h)

引用方式如下:

C语言

#include <string.h>

C++

#include <cstring>

二、strncmp函数的作用

比较两个字符串中指定个数的字符。

三、理解strncmp函数的定义

int strncmp ( const char * str1, const char * str2, size_t num );

1、返回类型

C语言标准规定:库函数strncmp的返回类型和strcmp一样,是一个int型的数据(一个整数),当返回的整数大于0时,说明str1指向的字符串大于str2指向的字符串;当返回的整数是等于0的,则str1指向的字符串和str2指向的字符串是一样的;当返回的整数小于0时,str1指向的字符串小于str2指向的字符串。

2、参数

C语言标准规定:库函数strncmp的参数有三个,第一个为const char* str1(一个字符指针,指向要比较的字符串之一),该参数前加上了const使其具备了常属性–不可被更改,一定程度上提高了函数的安全性;第二个为const char* str2(一个字符指针,指向另一个要比较的字符串),该参数前加上了const使其具备了常属性–不可被更改,一定程度上提高了函数的安全性,第三个为size_t  num(无符号整型,不能表示负数)表示要比较的字符个数。

四、使用strncmp函数

1、编写代码

#include <string.h> #include <stdio.h> int main() { char arr1[] = "abcd"; char arr2[] = "abcc"; if (strncmp(arr1, arr2,3) > 0) { printf("%s > %s", arr1, arr2); } else if (strncmp(arr1, arr2,3) < 0) { printf("%s < %s", arr1, arr2); } else { printf("前三位,%s = %s", arr1, arr2); } return 0; }

2、调试运行

每天深解一个字符串类函数之strncmp函数

五、注意要点 

无。(想不出了,挺简单的,直接用吧,无坑)

六、模拟实现

#include <stdio.h> int my_strncmp(const char* str1, const char* str2,size_t num) { while (num--) { if (*str1 == '\0' && *str2 == '\0')//当num未为0前,两字符串已全部比完,直接退出 break; if (*str1 == *str2) { str1++; str2++; } else { return *str1 - *str2; } } return 0; } int main() { char arr1[] = "ab"; char arr2[] = "ab"; if (my_strncmp(arr1, arr2,4) > 0) { printf("%s > %s", arr1, arr2); } else if (my_strncmp(arr1, arr2,4) < 0) { printf("%s < %s", arr1, arr2); } else { printf("前三位,%s = %s", arr1, arr2); } return 0; }

每日一学,今天你又超过了百分之九十九的人。

如果本篇文章对你有帮助,请点个关注和赞吧!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/120937.html

(0)
上一篇 2025-10-26 16:15
下一篇 2025-10-26 16:26

相关推荐

发表回复

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

关注微信