C语言的compare函数是在哪里定义的?算法是啥?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言的compare函数是在哪里定义的?算法是啥?相关的知识,希望对你有一定的参考价值。
我指的不是字符串比较,而是在数据结构中C语言描述中出现的在线性链表中查找满足条件的元素。
代码:
int LocateElement_L(Node *L, ElemType e, Status(*compare)(ElemType, ElemType))
Node *p;
int j;
p=L->next;
j=1;
while(p&&(*compare)(p->data, e))
p=p->next;++j;
if(!p)
return 0;
return j;
代码中的compare()函数在哪个头文件里。
注:源代码中并未定义该函数。
C语言只有字符数组有库函数strcmp函数,格式如下:
int strcmp(const char *str1, const char *str2);
如果左边小于右边的字符串,函数返回-1
如果左边字符串等于右边字符串,函数返回0
如果左边字符串大于右边字符串,函数返回1
一般基本数据类型的比较都可以用关系运算符,如果自定义的可以重载运算符或者使用函数对象,如果用C语言的方式,自定义一个比较函数就可以了,库函数中没有这种普适类型的比较函数。
扩展资料:
compare函数规则
当s1<s2时,返回为负数;
当s1=s2时,返回值= 0;
当s1>s2时,返回正数。
即两个字符串自左向右逐个字符相比(按ASCII值大小相比较),直到出现不同的字符或遇'\\0'为止,如:
1."A"<"B" 2."A"<"AB" 3."Apple"<"Banana" 4."A"<"a" 5."compare"<"computer"
参考资料来源:百度百科-strcmp
int strcmp(const char *str1, const char *str2);
如果左边小于右边的字符串,函数返回-1
如果左边字符串等于右边字符串,函数返回0
如果左边字符串大于右边字符串,函数返回1 11111让一让英语 参考技术C 只有字符数组有库函数strcmp函数,格式如下:
int strcmp(const char *str1, const char *str2);
如果左边小于右边的字符串,函数返回-1
如果左边字符串等于右边字符串,函数返回0
如果左边字符串大于右边字符串,函数返回1
一般基本数据类型的比较都可以用关系运算符,如果自定义的可以重载运算符或者使用函数对象,如果用C语言的方式,自定义一个比较函数就OK了,库函数中没有这种普适类型的比较函数本回答被提问者和网友采纳
以上是关于C语言的compare函数是在哪里定义的?算法是啥?的主要内容,如果未能解决你的问题,请参考以下文章