|
http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=2848 [º¹»ç]
#include <stdio.h>
#include <stdlib.h>
int ACDSort (const void* p1, const void* p2); // ¿À¸§Â÷¼ø Á¤·Ä KEY
int LenOfStr (char* str); // ¹è¿ ±æÀÌ ¹Ýȯ ÇÔ¼ö ¼±¾ð
int main(void)
{
char* strAry[4] = {"Hardware", "Cookie", "Boy", "Power"};
int i;
puts("+++++ Before Qsort +++++");
for(i=0;i<4;i++){
printf("%d¹øÂ° ¹®ÀÚ¿ ---> %s \n",i+1,strAry[i]);}
puts("");
qsort((void*)strAry,sizeof(strAry)/sizeof(char*) , sizeof(char*), ACDSort);
/* qsort Àü´Þ ÀÎÀÚ·Î Æ÷ÀÎÅͰ¡ ¿Ã ¶§´Â ¾î¶»°Ô ÇØ¾ßÇϳª? */
puts("+++++ After Qsort +++++");
for(i=0;i<4;i++){
printf("%d¹øÂ° ¹®ÀÚ¿ ---> %s \n",i+1,strAry[i]);}
return 0;
}
int LenOfStr (char* str)
{
int len=0, i=0;
while(str[i] != '\0'){
i++;
len++;}
return len;
}
int ACDSort (const void* p1, const void* p2)
{
char* str1 = *((char**)p1); // Áú¹®-->¿Ö char** Àΰ¡?
char* str2 = *((char**)p2);
if(LenOfStr(str1) > LenOfStr(str2)) return 1;
else if(LenOfStr(str1) < LenOfStr(str2)) return -1;
else return 0;
}
ÀÏ´Ü ¹®Á¦´Â ¿©±âÀú±â Âü°íÇÏ¸é¼ Äڵ带 Â¥±ä Çß½À´Ï´Ù¸¸, ÇѰ¡Áö ÀÌÇØ°¡ ¾È°¡´Â ºÎºÐÀÌ
Àú±â Áú¹® Ç¥½Ã¸¦ ÇØ³õÀº ºÎºÐÀÔ´Ï´Ù. ¿Ö char** (´õºíÆ÷ÀÎÅÍ)¸¦ »ç¿ëÇÏ´Â °ÍÀÎÁö¿ä ^^? |
Hit : 4244 Date : 2011/01/09 06:10
|