• 【strcmp函数和strncmp函数的对比于模拟实现】


    strcmp函数和strncmp函数的对比于模拟实现

    1.strcmp函数的介绍

    资源来源于cplusplus网站
    在这里插入图片描述

    它的作用是:
    将 C 字符串 str1 与 C 字符串 str2 进行比较。
    此函数开始比较每个字符串的第一个字符。如果它们彼此相等,则继续以下对,直到字符不同或达到终止空字符。
    此函数执行字符的二进制比较

    说白了就是比较两个字符串

    2.strncmp函数的介绍

    资源来源于cplusplus网站
    在这里插入图片描述

    它的作用是:
    将 C 字符串 str1 的字符数与 C 字符串 str2 的字符数进行比较。
    此函数开始比较每个字符串的第一个字符。如果它们彼此相等,则继续使用以下对,直到字符不同,直到达到终止的空字符,或者直到两个字符串中的 num 字符匹配,以先发生者为准。

    说白了就是比较两个字符串的字符

    3.strcmp和strncmp的对比

    这两个函数唯一不同的就是strncmp多了一个n,这个n就是需要比较的字符的长度,大小为字节

    4.strcmp函数的模拟实现

    int my_strcmp(const char* str1, const char* str2)
    {
    	assert(str1 && str2);
    	while (*str1==*str2)
    	{
    		if (*str1 == '\0')
    			return 0;
    		str1++;
    		str2++;
    
    	}
    	if (*str1 > *str2)
    		return 1;
    	else
    		return -1;
    
    
    }
    int main()
    {
    	char arr1[] = "abcdef";
    	char arr2[] = "abcdm";
    	int ret = my_strcmp(arr1, arr2);
    	printf("%d\n", ret);
    
    	return 0;
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    5.strncmp函数的模拟实现

    int my_strncmp(char* dest, const char* src, int num) 
    {
    	assert(dest && src);
    
    	while (num-- && *dest == *src)
    	{
    		dest++;
    		src++;
    	}
    	return *dest - *src;
    	
    }
    int main()
    {
    	char arr1[] = "abcdef";
    	char arr2[] = "abcdf";
    	printf("%d\n", my_strncmp(arr1, arr2, 4));
    	system("pause");
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
  • 相关阅读:
    c++初始化列表
    C语言文件操作——打开 &关闭 &顺序读写 &随机读写
    认识广告数据分析
    多目标优化算法:多目标哈里斯鹰优化算法(Multi-Objective Harris Hawks Optimizer,MOHHO)
    大咖说*计算讲谈社|自动驾驶,未来的移动智能载体?
    Python自动查重之原理、方法与实践详解
    C#Winform 打开文件浏览器
    Python 文件的读写操作
    【C++】set / multiset容器
    java 单例模式
  • 原文地址:https://blog.csdn.net/qq_73900397/article/details/132780364