【发布时间】:2011-12-02 23:26:49
【问题描述】:
我从 c 库中知道 qsort,我已经用字符和整数实现了它(从 const void * 形式转换为相关形式),但现在我正在实现代码,它给我在给定句子中最长重复的代码是简单的比较函数
int pstrcmp(char **p,char **q){
return strcmp(*p,*q);
}
我想像这样在 qsort 中使用它
qsort(a,n,sizeof(char *),pstrcmp);(a is array of strings)
当我直接写时,它写它不兼容并且儿子,显示错误,请帮助我更正它
错误是这样的
2 IntelliSense:“int (*)(char **p, char **q)”类型的参数是 与“int (__cdecl *)(const void *, const void *)" c:\users\datuashvili\documents\visual studio 2010\projects\duplicate_strings\duplicate_strings\duplicates_strings.cpp 32 27 duplicate_strings
【问题讨论】:
-
在 C++ 中使用
qsort而不是std::sort有什么原因吗? -
将
std::sortfrom<algorithm>与bool pstrcmp(const char* a, const char* b) { return strcmp(a,b) < 0;}一起使用要简单得多。使用std::string甚至更简单,您根本不必实现比较功能。