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

参考技术A 应该是自定义的函数,实现两个ElemType型变量数值大小的比较功能 参考技术B 点点滴滴只有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函数是在哪里定义的?算法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

c语言中return语句的具体作用是啥?返回值是干嘛的,谁向谁返值,返到哪里?请回答的具体点,谢谢!

C语言包含头文件是啥?

FFT的最优算法是啥?以及其代码(C语言),谢谢!

delphi中函数的声明和调用是啥意思?

C语言枚举定义函数,是啥意思?

c语言中用户自定义函数的格式是啥?