zoukankan      html  css  js  c++  java
  • 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的魔法藏书室

  • 相关阅读:
    blktrace 梁斌说
    线索二叉树
    Boost库中文文档
    STL中的equal函数
    HDU3661_assignments_活动分配_贪心
    转:数据结构小结
    HDU2273_车通过路口
    C++之lexicographical_compare
    HDU1671_Phone List
    HDU2277_变色球
  • 原文地址:https://www.cnblogs.com/zobol/p/14356699.html
Copyright © 2011-2022 走看看