C语言学习之我见-strncmp()字符串比较函数(控制范围)

strncmp()函数,用于范围内,两个字符串的比较,n表示最大比较范围。
(1)函数原型

int  strncmp(const char *_Str1,const char *_Str2,size_t _MaxCount);

(2)头文件

string.h

(3)功能

比较const char *_Str1,const char *_Str2所指的字符串内容,
并根据size_t _MaxCount确定比较范围,第一个遇到的不相等字符ASCII值差确定返回值。。\
相等:0
范围内_Str大于_Str2:1
范围内_Str小于_Str2:-1

(4)基础实例代码

    printf("%d\n",strncmp("zobola","zobolb",5));
	printf("%d\n",strncmp("zobola","zobolb",6));

(5)输出情况
在这里插入图片描述
(6)问题1:字符可以不可以
回答,不可以,字符char跟字符数组首地址char*完全不同

(7)问题2:n超过字符数组最大会怎么样?
回答:没有关系,N本身就是最大范围,而不是确定范围

printf("%d\n",strncmp("zobola","zobolb",1000));

在这里插入图片描述
(8)问题3:如果输入是字符数组,而不是字符串会怎么样?
回答:函数会只访问到'0'为止,如果没有则访问到结尾

	char a[]="zobol\0we";
	char b[]="zobol\0sds";
	printf("%d\n",strncmp(a,b,9));

在这里插入图片描述

(9)问题4:如果两个字符串大小不一样怎么比?
回答,默认不足的补全为'0'

如有帮助,欢迎加我的个人公众号:zobol的魔法藏书室

posted @ 2021-02-01 15:04  落剑仙zobol  阅读(365)  评论(0编辑  收藏  举报