我想按照字典的名字對字符串進行排序。如何按照字典順序對結構中的字符串進行排序?
,所以我有結構
typedef struct buff{
char *name;
} structure;
的數組,我複製與其相關的擴展名的文件的名稱。因此,該結構的內容看起來像s[0].name = "picture1.jpg"
s[1].name = "DCP003.JPG"
以及類似的東西。
我正在嘗試對此進行排序,而且我無法實現該目標..到目前爲止我所擁有的就是這個。
void sort(structure *s, int counter){
for (int i = 0; i < counter - 1; i++){
for (int j = 0; j < counter - 1 - i; j++){
if (strcmp(s[j].name, s[j+1].name) > 0){
structure tmp;
tmp = s[j];
s[j] = s[j+1];
s[j+1] = tmp;
}
}
}
for (int i = 0; i < counter; i++){
printf("%d - %s\n", i+1, s[i].name);
}
}
它不工作,因爲我想..試了幾個版本仍然沒有好..我在哪裏犯錯誤?任何意見是極大的讚賞..
'S [0]。名稱= 「picture1.jpg」;'是** **不復制。 – Mahesh
使用基數排序:http://stackoverflow.com/questions/1271367/radix-sort-implemented-in-c –
@Mahesh我知道如何將一個字符串的內容複製到另一個..實際上我使用sprintf對於這一個,這只是爲了說明可能的內容。 – Markus