|
C++ Builder 도움말에서 발췌한 예제입니다.
핵심은.. qsort의 함수 포인터 입력하는 부분에
negative integer, 0, positive integer 3개 중 1개의 값을 리턴해 줄 수 있는 함수 이름을 넣어 주는 겁니다.
(물론 이 함수는 프로토타입이 정의되어야 하고 기능이 구현되어야 합니다)
strcmp 함수가 참고가 될만하니 MSDN을 읽어보시기 바랍니다.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int sort_function( const void *a, const void *b);
char list[5][4] = { "cat", "car", "cab", "cap", "can" };
int main(void)
{
int x;
qsort((void *)list, 5, sizeof(list[0]), sort_function);
for (x = 0; x < 5; x++)
printf("%s\n", list[x]);
return 0;
}
int sort_function( const void *a, const void *b)
{
return( strcmp((char *)a,(char *)b) );
}
이희원 님이 쓰신 글 :
: C++ 빌더 게시판인줄은 알지만, 주변에 물어볼 곳이 없어서
:
: 장소에 맞지 않는 글입니다만, 죄송하게도 올리게 되었습니다...
:
: qsort라는 명령어가 있잖습니까...(VC++ 6.0 쓰고 있습니다.)
:
: 이 명령어의 마지막에 비교하는 함수가 들어가던데....
:
: 도통 어떻게 작성하는지를 모르겠습니다.
:
: msdn에 들어가보니 built-in된 함수인 _stricmp ...(맞나?)로 설명되어 있어서
:
: 어떤식으로 작성해야 하는지, 알수가 없군요.
:
: 데이터구조는 일반적인 어레이, 타입은 정수(int) 입니다.
:
: 어떻게 작성하는것이죠;;;
|