zoukankan      html  css  js  c++  java
  • c语言中strncmp函数,函数原型,头文件

    1、函数原型

    #include <stdio.h>
    
    int strncmp(const char *s1, const char *s2, size_t n)
    {
        while(n && *s1 && *s2)
        {
            if(*s1 != *s2)
                return (unsigned char)*s1 - (unsigned char)*s2;
            n--;
            s1++;
            s2++;
        }
        if(!n)
            return 0;
        if(*s1)
            return 1;
        return -1;
    }
    
    int main(void)
    {
        char str1[128] = "abcd";
        char str2[128];
        printf("str2: "); scanf("%s", str2);
        
        unsigned n;
        printf("n = "); scanf("%u", &n);
        
        int tmp = strncmp(str1, str2, n);
        if(tmp > 0)
            puts("str1 > str2");
        else if(tmp == 0)
            puts("str1 = str2");
        else
            puts("str1 < str2");
        return 0;
    }

     改进

    #include <stdio.h>
    
    int strncmp(const char *s1, const char *s2, size_t n)
    {
        while(n && *s1 && *s2)
        {
            if(*s1 != *s2)
                return (unsigned char)*s1 - (unsigned char)*s2;
            n--;
            s1++;
            s2++;
        }
        if(!n)
            return 0;
        if(*s1 == *s2)
            return 0;
        if(*s1)
            return 1;
        return -1;
    }
    
    int main(void)
    {
        char str1[128] = "abcd";
        char str2[128];
        printf("str2: "); scanf("%s", str2);
        
        unsigned n;
        printf("n = "); scanf("%u", &n);
        
        int tmp = strncmp(str1, str2, n);
        if(tmp > 0)
            puts("str1 > str2");
        else if(tmp == 0)
            puts("str1 = str2");
        else
            puts("str1 < str2");
        return 0;
    }

    2、头文件

    #include <stdio.h>
    #include <string.h>
    
    int main(void)
    {
        char str1[128] = "abcd";
        char str2[128];
        printf("str2: "); scanf("%s", str2);
        
        unsigned n;
        printf("n = "); scanf("%u", &n);
        
        int tmp = strncmp(str1, str2, n);
        if(tmp > 0)
            puts("str1 > str2");
        else if(tmp == 0)
            puts("str1 = str2");
        else
            puts("str1 < str2");
        return 0;
    }

  • 相关阅读:
    MySQL Backup mysqldump 常用选项与主要用法--转发
    openssl 之RSA加密
    Windows 之Dll/lib导出
    缓存雪崩、击穿、穿透
    时间复杂度
    分布式事务
    mysql主从复制与读写分离
    什么是消息队列?
    微服务架构演化
    高并发问题常规思路
  • 原文地址:https://www.cnblogs.com/liujiaxin2018/p/14844448.html
Copyright © 2011-2022 走看看