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的魔法藏书室

相关