ÇÁ·Î±×·¡¹Ö

 3198, 1/160 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   o¿£¿äo
   http://www.cyworld.com/rlwls212
   Áú¹®ÀÌ¿ä~!

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