我正在开发一个程序,该程序获取用户输入的单词列表,忽略大小写(大写和小写),然后使用函数 qsort 对它们进行排序。我在使用 qsort 时遇到问题,因为我不知道将什么作为第三项 qsort(array, sizeOfArray, ??, funcCompare) 传递。有人可以指出我正确的方向吗?
using namespace std;
int compare(const void* , const void*);
const int SIZE = 100;
void main()
{
int i = 0;
int s = 0;
size_t size = 0;
string words;
string list[SIZE];
for (i = 0; i < SIZE; i++)
{
cout << "Please enter a word. Press ^Z to quit: " << endl;
cin >> words;
transform(words.begin(), words.end(), words.begin(), ::tolower);
if (words.length() > size)
{
size = words.length();
}
list[i] = words;
if (cin.eof())
{
s = i;
break;
}
}
qsort(list, s, ?? , compare);
for (int j = 0; j < i; j++)
{
cout << list[j] << endl;
}
}
int compare(const void* p1, const void *p2)
{
char char1, char2;
char1 = *(char *)p1; // cast from pointer to void
char2 = *(char *)p2; // to pointer to int
if(char1 < char2)
return -1;
else
if (char1 == char2)
return 0;
else
return 1;
}
qsort 中有问题的位置有'??' 感谢您提供的任何帮助!
这是一个任务