Я хочу использовать функцию qsort() в своей программе.Использование qsort в структуре, содержащей строки
Я хочу отсортировать эту структуру по строкам.
Я только что указал указатели.
Я искал в Интернете, но я не понял.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int cmpstr(const void* a, const void* b)
{
const char* aa = *(const char**)a;
const char* bb = *(const char**)b;
return strcmp(aa,bb);
}
typedef struct
{ int x;
char a[10];
}alex;
int main()
{
alex vd[10];
int i;
//vd=malloc(sizeof(struct alex)*2);
strcpy(vd[0].a,"dinamitte");
strcpy(vd[1].a,"alex");
printf("Before : \n");
for(i=0;i<=1;i++)
printf("%s ",vd[i].a);
//qsort(v,1,sizeof (v) ,myCompare);
int n=2;
//qsort(v, 2, sizeof (char *), cstring_cmp);
qsort(vd,n ,sizeof(alex),cmpstr);
//qsort()
printf("\nAfter : \n");
for(i=0;i<=1;i++)
printf("%s \n",vd[i]);
return 0;
}
После компилировать, он пишет на экране «dinamitte» и «AleX», а затем некоторые странные символы.
Ваш 'функции cmpstr' неправильно. потому что вершина члена 'alex' имеет' int'. – BLUEPIXY
, но не должен ли я вернуть значение? –
Также 'printf ("% s \ n ", vd [i]);' typo as 'printf ("% s \ n ", vd [i] .a);' – BLUEPIXY