strncmp函数详解看这一篇就够了-C语言(函数实现、使用用法举例、作用、与strcmp的区别)
首先要明确strncmp的功能是:用来比较指定长度两个字符串的大小
目录
函数介绍
与strcmp的区别
ACSII表
函数实现:
用法示例:
结果展示:
函数介绍
函数原型:int strncmp(const char* str1, const char* str2, size_t num)
头 文 件:#include <string.h>
返 回 值:(与strncmp相同)str1 = str2 则返回0,
str1 > str2 则返回大于0的值,
str1 < str2 则返回小于0的值
说明:
判断两个字符串大小
1)ACSII码 2)长度
注:区分大小写比较的,如果希望不区分大小写进行字符串比较,可以使用stricmp函数
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表
函数实现:
//以null结尾的字符串 const修饰防止字符串被修改,进行保护
int My_strncmp(const char* str1, const char* str2, int n)
{if (!n) //n=0时,无字符要比,直接return 0return 0;while (--n && *str1 && *str1 == *str2) //当字符相等且不为’\0‘时比较下个字符,知道n=0比完{str1++;str2++;}return *str1 - *str2;//字符不相等时,(*str1 - *str2)可以满足返回值正负的需求
}
用法示例:
#include <stdio.h>
#include<string.h>
#include <assert.h>
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的区别)相关推荐
- strtok函数详解 看这一篇就够了-C语言(函数讲解、函数实现、使用用法举例、作用)
strtok()函数用于: 将字符串拆分为标记 函数介绍 函数声明:char * strtok ( char * str, const char * delimiters ); 头 文 件:#in ...
- strstr函数详解 看这一篇就够了-C语言(函数讲解、函数实现、使用用法举例、作用、自己实现函数 )
strstr()函数用于:查找子字符串 目录 函数介绍 用法示例 函数讲解 实现函数 事例展示 函数介绍 函数声明:char *strstr(const char *str1, const char ...
- memmove函数详解 看这一篇就够了-C语言(函数讲解、函数实现、使用用法举例、作用、自己实现函数 )
memmove()函数用于:移动内存块 函数介绍 函数声明:void * memmove ( void * destination, const void * source, size_t num ) ...
- strncpy函数详解看这一篇就够了-C语言(函数实现、使用用法举例、与strcpy的区别)
首先要明确strncpy的功能是:拷贝src字符串的前n个字符至dest 目录 函数介绍 与strcpy的区别 函数实现: 用法示例: 结果展示: 函数介绍 函数原型: char *strncpy(c ...
- strcat函数详解看这一篇就够了-C语言(函数实现、使用用法举例、作用、与strncat的区别)
首先要明确strcat的功能是:将参数dest字符串和参数src字符串拼接起来 目录 函数介绍 与strncat的区别 函数实现: 用法示例: 结果展示: 函数介绍 函数原型:char* strcat ...
- memcpy函数详解 看这一篇就够了-C语言(函数讲解、 使用用法举例、作用)
memcpy()函数用于:复制内存块 函数介绍 函数声明:void * memcpy ( void * destination, const void * source, size_t num ); ...
- strerror函数详解 看这一篇就够了-C语言(函数讲解、 使用用法举例、作用)
strerror()函数用于:获取指向错误消息字符串的指针 函数介绍 函数声明: char * strerror ( int errnum ); 头 文 件:#include <string ...
- strncat函数详解看这一篇就够了-C语言(函数实现、使用用法举例、作用、与strcat的区别)
首先要明确strncat的功能是:从字符串src的开头拷贝n个字符到dest字符串尾部 目录 函数介绍: 与strcat的区别 函数实现: 用法示例: 结果展示: 函数介绍: 函数原型:char* s ...
- 代理后台中间件_Golang Gin 实战(十三)| 中间件详解看这一篇就够了
6000字大章带你死磕Golang Gin中间件 在Gin的整个实现中,中间件可谓是Gin的精髓.一个个中间件组成一条中间件链,对HTTP Request请求进行拦截处理,实现了代码的解耦和分离,并且 ...
最新文章
- javaScript的调试(二)
- 关于 Capella 需要纠正的语音
- 轻量集群管理工具PSSH
- iPhoneUI元素的大小
- win7 php mysql扩展名_Win7 配置Apache+PHP+Mysql环境
- 《唐人街探案3》回归春节档,2021大年初一上映!
- 企鹅手机即将发布,TencentOS会是亮点么?
- NodeJS学习笔记之express
- Python 做自动化测试环境搭建
- 设计模式-职责链模式 (分离职责,动态组合)
- shell脚本练习实例
- 景林合伙人张小刚:我们的优势在哪里?
- ADSL密码查看器绿色版
- c++strcmp函数
- AHCI驱动中的cmd
- 民间借贷红线大幅下调,二手车平台去金融化将成趋势?
- C/C++经典算法——约瑟夫问题
- 从不跑步到无间断跑步1年感受
- Kubeadm 部署企业级高可用Kubernetes(适用于ECS)
- 【Leetcode刷题Python】714. 买卖股票的最佳时机含手续费
热门文章
- mybatis传入参数为map时如何在mapper.xml中获取
- 机械硬盘接口类型(IDE、SATA、SCSI、SAS)
- http拨测是什么意思_移动业务质量拨测系统的设计方案
- ACP考试关键词(一)
- 令人头疼的编程命名问题你如何面对?
- APMCM(亚太地区数模竞赛)2014年-C题:Research about Public Elementary Teachers for Vocational Education(附获奖论文)
- 逻辑思维/(美)理查德·尼斯贝特——拥有智慧思考的工具
- 全局安装 Angular CLI
- 毒鸡汤 | 云服务器部署项目
- java unit test_Java中几种Unit Test场景