#include #include int update_phonebook (char** bookNames, long* bookNumbers, int bookSize, char* newABOrder); int check_name (char* checking, char* abOrder); int build_new_list (char** bookNames, int bookSize); void swap (char** firstStr, char** nextStr); void max_sort (char** bookNames, int bookSize, char* abOrder); int find_max (char** bookNames, int last_id, char* abOrder); int str_cmp (char* compared, char* max_id_inBook, char* abOrder); int cmp_by_abc (char* abOrder, char char_in_compared, char char_max_id_inBook ); int main () { char* names[3] = {"moshe", "boris", "ahmad"}; long numbers[3] = {123, 456, 789}; char abOrder[]= "ambosrhed"; char checking []="boris"; int count=0; int i=0; count=update_phonebook (names, numbers, 3, abOrder); printf ("Amount of names in new PB is: %d", count); /*for (i=0; i<3; i++) { printf ("\nname %d is %s", i, names [i]); } printf ("maxid is %s", names[find_max (names, 2, abOrder)]); for (i=0; i<3; i++) { printf ("\nname %d is %s", i, names [i]); } max_sort (names, 3, abOrder);*/ for (i=0; i<3; i++) { printf ("\nname %d is %s", i, names [i]); } // for (i=0; i<3; i++) //{ // check_name (checking, abOrder); //} //for (i=0; i<3; i++) //{ //printf ("\nname %d is %s", i, names [i]); //} getchar (); return 0; } /*update phonebook*/ int update_phonebook (char** bookNames, long* bookNumbers, int bookSize, char* abOrder) { int i=0, newBookSize=0; for (i=0; i=1; last_id--) { max_id=find_max (bookNames, last_id, abOrder); if (max_id!=last_id) swap (&bookNames[max_id], &bookNames[last_id]); } } /*find_max*/ int find_max (char** bookNames, int last_id, char* abOrder) { int max_id=0, i=0; int compare=0; for (i=1; i<=last_id; i++)// { if (str_cmp(bookNames[i],bookNames[max_id], abOrder) > 0) { max_id=i; } } return max_id; } /*str_cmp*/ int str_cmp (char* compared, char* max_id_inBook, char* abOrder) { int i=0, n=0,m=0; int match=0; n=strlen(compared); m=strlen(max_id_inBook); for (i=0; (im) { match= 1; } else if (n