#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void extract_name(const char *s, char *out) {
const char *p = strrchr(s, ' '); // find last space
size_t len = p - s; // length of the name part
strncpy(out, s, len);
out[len] = '\0';
}
int cmp(const void *a, const void *b) {
const char *sa = *(const char **)a;
const char *sb = *(const char **)b;
char nameA[100], nameB[100];
extract_name(sa, nameA);
extract_name(sb, nameB);
return strcmp(nameA, nameB);
}
int main(void) {
const char *arr[] = {
"Python 4", "C 9", "C++ 5", "C# 6",
"Java 1", "PHP 7", "Go 2"
};
size_t n = sizeof(arr) / sizeof(arr[0]);
qsort(arr, n, sizeof(char *), cmp);
for (size_t i = 0; i < n; i++)
printf("%s\n", arr[i]);
return 0;
}
/*
run:
C 9
C# 6
C++ 5
Go 2
Java 1
PHP 7
Python 4
*/