strcmp関数は次のように実装されます


●模拟库函数
int strcmp ( const char * str1, const char * str2 )
strcmp是实现比较两个字符串大小的函数,它是标准库中的函数,
现在,要人为的实现该函数的功能

int my_strcmp(const char *str1, const char *str2)
{
    
       assert(str1);//首先断言确保安全性
	assert(str2);
	int ret=0;
	while(!(ret=*(unsigned char*)str1-*(unsigned char*)str2)&&*str2)
	//比较两个字符串每一个字符的大小,若相等则比较两者的下一个字符
	{
    
    
		str1++;
		str2++;
	}
	if(ret>0)
	{
    
    
		return 1;
	}
	if(ret<0)
	{
    
    
		return -1;
	}
	return 0;
}
//根据返回值可以得到两个字符串的大小关系
int main()
{
    
    
	char str1[]="asdfghj";
	char str2[]="asdfghb";
	printf("%d",my_strcmp(str1,str2));
	return 0;
}

おすすめ

転載: blog.csdn.net/cfk17829572643/article/details/109251514