#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
char* getMiddleWords(const char* string) {
// Split the string into an array of words
char* wordsArr[64]; // Assuming a maximum of 64 words
int numWords = 0;
char* token = strtok((char*)string, " ");
while (token != NULL) {
wordsArr[numWords++] = token;
token = strtok(NULL, " ");
}
char* result = (char*)malloc(256 * sizeof(char)); // Allocate memory for result
if (numWords % 2 == 0) {
int middle1 = floor(numWords / 2) - 1;
int middle2 = floor(numWords / 2);
sprintf(result, "%s %s", wordsArr[middle1], wordsArr[middle2]);
} else {
int middle_minus_1 = floor(numWords / 2) - 1;
int middle = floor(numWords / 2);
int middle_plus_1 = floor(numWords / 2) + 1;
sprintf(result, "%s %s %s", wordsArr[middle_minus_1], wordsArr[middle], wordsArr[middle_plus_1]);
}
return result;
}
int main() {
char string[] = "c++ c java php c# python rust";
char* middleWords = getMiddleWords(string);
printf("%s\n", middleWords);
free(middleWords); // Free allocated memory
return 0;
}
/*
run:
java php c#
*/