Add solution.
This commit is contained in:
1 parent
8df631db8b
commit
dc74f6e306
1 file changed
+17
@@ -13,6 +13,7 @@
|
||||
#include <string.h>
|
||||
|
||||
void gibStringsAus(const char *strings[], unsigned int anzahl);
|
||||
int compare(const void *arg1, const void *arg2);
|
||||
|
||||
int main()
|
||||
{
|
||||
@@ -23,6 +24,7 @@ int main()
|
||||
gibStringsAus(strings, anzahlStrings);
|
||||
|
||||
// TODO: Hier sortieren
|
||||
qsort(strings, anzahlStrings, sizeof(*strings), compare);
|
||||
|
||||
printf("\nNach Sortierung:\n");
|
||||
gibStringsAus(strings, anzahlStrings);
|
||||
@@ -37,3 +39,18 @@ void gibStringsAus(const char *strings[], unsigned int anzahl)
|
||||
printf("%s\n", strings[i]);
|
||||
}
|
||||
}
|
||||
|
||||
int compare(const void *arg1, const void *arg2)
|
||||
{
|
||||
const char *str1 = *((const char **)arg1);
|
||||
const char *str2 = *((const char **)arg2);
|
||||
|
||||
if(!isdigit(str1[0]) && !isdigit(str2[0]))
|
||||
return strcmp(str1, str2);
|
||||
else if(isdigit(str1[0]) && isdigit(str2[0]))
|
||||
return strcmp(str2, str1);
|
||||
else if(isdigit(str1[0]))
|
||||
return 1;
|
||||
else
|
||||
return -1;
|
||||
}
|
||||
Reference in new issue
Block a user