From 3b5d11135145ce13f5c1ab46266a3c91c6a0402e Mon Sep 17 00:00:00 2001 From: paulusja Date: Thu, 22 Oct 2026 11:19:38 +0200 Subject: [PATCH] Add name sorting. --- 03_modultechnik/namesarchive.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/03_modultechnik/namesarchive.c b/03_modultechnik/namesarchive.c index 21f329c..918fffb 100644 --- a/03_modultechnik/namesarchive.c +++ b/03_modultechnik/namesarchive.c @@ -8,6 +8,7 @@ static unsigned int numberOfNames = 0; static int findNameIdx(const char *name); static void removeNameByIdx(unsigned int idx); +static int compareNames(const void *arg1, const void *arg2); // Fügt einen Namen hinzu. Im Fehlerfall (Archiv ist voll) soll 0, ansonsten 1 zurückgegeben werden. // Ist der angegebene Name länger als die zulässige Namenslänge, wird der Name abgeschnitten hinzugefügt. Rückgabe ist dann 1. @@ -66,10 +67,18 @@ void removeNameByIdx(unsigned int idx) numberOfNames--; } +int compareNames(const void *arg1, const void *arg2) +{ + const char (*name1)[MAX_NAME_LEN] = arg1; + const char (*name2)[MAX_NAME_LEN] = arg2; + + return strcmp(*name1, *name2); +} + // Sortiert die Namen im Archiv aufsteigend. void sortNames() { - + qsort(names, numberOfNames, sizeof(names[0]), compareNames); } // Gibt die Namen zeilenweise aus.