我有按姓氏排序的算法,但我無法弄清楚如何按姓氏排序,然後如果兩個人有相同的姓氏,按他們的名字排序。按姓氏排序結構
void sortLastName(FRIEND friends[ARRAY_MAX], int& count) {
FRIEND temp;
for(int i = 0; i < count - 1; i++) {
for (int j = i + 1; j < count; j++) {
if (stricmp(friends[i].lastName, friends[j].lastName) > 0) {
temp = friends[i]; //swapping entire struct
friends[i] = friends[j];
friends[j] = temp;
}
}
}
}
===編輯====================
我不想使用STD sort()
因爲這被認爲是C++,的std ::排序會是一個更好的選擇 – jalf 2009-05-14 17:12:35
這就是爲什麼我說相當的 - 我對C++有點生疏; - ) – Alnitak 2009-05-14 17:16:43
這是錯誤的。 stricmp()返回一個3值整數(正數,零或負數),而不是一個布爾值,所以使用||是完全錯誤的。 ||的結果運算符總是爲0或1,而不是其中一個操作數的值。 – 2009-05-14 17:16:50