You are viewing a single comment's thread. Return to all comments →
int lexicographic_sort(const char* a, const char* b) { return strcmp(a, b); } int lexicographic_sort_reverse(const char* a, const char* b) { return strcmp(b, a); } int sort_by_number_of_distinct_characters(const char* a, const char* b) { int count_a = 0, count_b = 0; int char_count[26]; memset(char_count,1,sizeof(char_count)); for (const char* p = a; *p != '\0'; p++) { if (char_count[*p - 'a']) { char_count[*p - 'a'] = 0; count_a++; } } memset(char_count, 1, sizeof(char_count)); for (const char* p = b; *p != '\0'; p++) { if (char_count[*p - 'a']) { char_count[*p - 'a'] = 0; count_b++; } } if (count_a == count_b) { return strcmp(a, b); } else { return count_a - count_b; } return 0; } int sort_by_length(const char* a, const char* b) { if(strlen(a) > strlen(b)){ return 1; } else if(strlen(a) < strlen(b)){ return -1; } else if(strlen(a) == strlen(b)){ return strcmp(a, b); } return 0; } void string_sort(char** arr,const int len,int (*cmp_func)(const char* a, const char* b)){ for (int i = 0; i < len-1 ; i++) { if (cmp_func(arr[i], arr[i+1]) > 0) { char* temp = arr[i]; arr[i] = arr[i+1]; arr[i+1] = temp; i = -1; } } }
Seems like cookies are disabled on this browser, please enable them to open this website
Sorting Array of Strings
You are viewing a single comment's thread. Return to all comments →