2
stdlib qsort를 사용하여 문자열 배열을 정렬하려고합니다. 아무도 내가 누락 된 단계를 가리킬 수 있습니까?qsort를 사용하여 문자열 정렬
1.unsorted 문자열 배열 2.first 캐릭터가 잘못된 (노마 amnor로 인쇄)
int compare(const void* a, const void* b)
{
const char *ia = (const char *)a;
const char *ib = (const char *)b;
return strcmp(ia, ib);
}
//utility to print strings
void print_strs(char name[][10],int len){
int i=0;
len = 5;
for(i=0;i<len;i++){
printf("%s \n",name[i]);
}
}
int _tmain(int argc, _TCHAR* argv[])
{
char names[5][10] = {"norma","daniel","carla","bob","adelle"};
int size1 = sizeof(names[0]);
int s2 = sizeof(names)/size1;
print_strs(names,5);
qsort(names,s2,sizeof(char),compare);
printf("\n==================\n");
print_strs(names,5);
return 0;
}
따라 출력의 문제이다. qsort
를 호출하는 동안
norma
daniel
carla
bob
adelle
==================
amnor
daniel
carla
bob
adelle
하는 메이크업
그래서, 당신은 하나가 아니라
qsort
를 호출하여 그것을 해결할 수 있습니다 'char *'의 배열 (비교 함수가 정의 됨)이나'char [10]'(배열이 선언 됨)의 배열이나 char의 배열을 정렬하려고하는지 '(qsort에 전달한 크기에 따라). – immibis'sizeof (char)'->'size1' – kaylum