diff --git a/qscr/c/stringsort.c b/qscr/c/stringsort.c index 7d812f8..7ca0d43 100644 --- a/qscr/c/stringsort.c +++ b/qscr/c/stringsort.c @@ -6,58 +6,63 @@ alleen individuele digits) split into strings and numbers - +okay dit werkt nu omzetten naar strings */ #include #include #include +#include #include -struct chickendynarr { - int *arr; - size_t length; -}; -struct chickendynarr *createarr(int size) { +#define WORDS 16 +#define WORDLENGTH 64 - struct chickendynarr *myarr = malloc(sizeof(int) * size); - myarr->length = size; - myarr->arr = (int *)(myarr + 1); - - for (int i = 0; i < size - 1; i++) { - int randnumb = rand() % 20; - myarr->arr[i] = randnumb; - printf("num%d:%d\n", i, randnumb); +/* return 1 if word1 < word 2*/ +int compareword(char word1[], char word2[]) { + for (int i = 0; i < WORDLENGTH; i++) { + if (word1[i] < word2[i]) { + printf("%s is larger than %s\n", word1, word2); + return 1; + } + else { + return 0; + } } - - return myarr; + return 0; } + /* eerst gewone bubblesort weer doen */ -int mybubblesort(struct chickendynarr *inputarr) { - for (int i = 0; i < inputarr->length - 1; i++) { // voor elk nummer - for (int j = 0; j < inputarr->length - 1; j++) { // ga langs elk nummer - if (inputarr->arr[j] > - inputarr->arr[j + 1]) { // als huidig nummer groter is +int mybubblesort(char inputarr[WORDS][WORDLENGTH]) { + for (int i = 0; i < WORDS - 1; i++) { // voor elk woord + for (int j = 0; j < WORDS - 1; j++) { // ga langs elk woord + if (compareword(inputarr[j], inputarr[j + 1])) { // als huidig nummer groter is // swap hem dan - int temp = inputarr->arr[j]; - inputarr->arr[j] = inputarr->arr[j + 1]; - inputarr->arr[j + 1] = temp; + char temp[64]; + strcpy(temp, inputarr[j+1]); + strcpy(inputarr[j+1], inputarr[j]); + strcpy(inputarr[j], temp); } } } - for (int i = 0; i < inputarr->length - 1; i++) { - printf("num:%d, %d\n", i, inputarr->arr[i]); + for (int i = 0; i < WORDS - 1; i++) { + if (inputarr[i][0] > 0) { + printf("num:%i, %s\n", i, inputarr[i]); + } + //puts(inputarr[i]); } return 0; } + int main() { + char mytest[16][64] = {"pear", "watermelon", "apple", "banana", "cantaloupe", "Elephant", "Zebra"}; + srand(time(NULL)); - struct chickendynarr *myarr = createarr(5); - mybubblesort(myarr); + mybubblesort(mytest); return 0; }