string sort using char [][]

This commit is contained in:
2026-05-30 01:40:22 +02:00
parent e0d044e719
commit 42c08d947f
+33 -28
View File
@@ -6,58 +6,63 @@ alleen individuele digits)
split into strings and numbers
okay dit werkt nu omzetten naar strings
*/
#include <stddef.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
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 0;
}
return myarr;
}
/* 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;
}