qsort()
의 문자로 3D 배열을 정렬하는 데 문제가 있습니다. 문자열의 길이로 배열을 정렬하려고합니다. qsort에 의해 C에서 문자의 3D 배열을 정렬하는 방법
int compare(const void *name1, const void *name2)
{
const char *name1_ = *(const char **)name1;
const char *name2_ = *(const char **)name2;
return strcmp(name1_, name2_);
}
을 그리고 나는 이것에 코드 수정 :
int compare(const void *name1, const void *name2)
{
const char *name1_ = *(const char ***)name1;
const char *name2_ = *(const char ***)name2;
if(strlen(name1_)>strlen(name2_))
{
return 1;
}
if(strlen(name1_)<strlen(name2_))
{
return -1;
}
else
{
return 0;
}
}
그러나이 작동하지 않습니다, 나는 방법을 몰라 해.
예를 들면. 나는이 같은 배열을 정렬 할 :
char * array1 [][2] = {
{ "murderer", "termination specialist" },
{ "failure", "non-traditional success" },
{ "specialist", "person with certified level of knowledge" },
{ "incorrect answer", "alternative answer" }
};
이 형식에 : 당신이 소개하고 싶습니다 정렬 규칙을 모른 채
char * array1 [][2] = {
{ "incorrect answer", "alternative answer" },
{ "specialist", "person with certified level of knowledge" },
{ "murderer", "termination specialist" },
{ "failure", "non-traditional success" }
};
어떻게 작동하지 않습니까? 컴파일 오류 ... 논리 오류 ... –
배열이 정의 된 방법을 보여주고 3D 배열을 정렬하여 의미를 정확히 설명하십시오. 정렬은 한 차원에서 의미가 있습니다. 둘 이상의 차원이있는 경우 추가 기준이 필요합니다. – paddy