I have a structure for every user and I'm trying to sort them by users Lastname
Full code:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
struct phNum
{
char name[30];
char lastName[30];
int phone;
};
typedef struct phNum PhNum;
PhNum phList[5] = {};
void showData() {
for(int i = 0;i < 5;i++) {
if(strcmp(phList[i].name,"empty") == 0 && phList[i].phone == 0){
printf("%d : %s | %s | null\n", i+1,phList[i].name,phList[i].lastName);
}
else {
printf("%d : %s | %s | %d\n", i+1,phList[i].name,phList[i].lastName,phList[i].phone);
}
}
}
The array maximum is 5 items and the minimum is 0
I want to sort them ascending by their Lastname and if there are 4 items don't show the fifth one.
and I want to override my Array phList and rewrite the sorted one
my showData function is supposed to sort and print
I tried These answers but I didn't understand: How to sort an array of structs in C? and
How do I sort an array of structs in C by name, age and id?
I also tried to make a bubble sort algorithm but I was struggling to put my sorted data into my phList
Thanks For Help
For starters this declaration
is invalid in C. Opposite to C++ in C you may not specify empty braces.
You could define the array like for example
To sort the array you can use standard C function
qsortdeclared in header<stdlib.h>.You need yourself to track how many actually initialized elements in the array. You may not change the array size.
For example if the array contains
ninitialized elements wherenis greater than0and less than or equal to5then you can writeand in main you can write