--- /dev/null
+#include "dol.h"
+
+/**
+ * Gets an index of a string, where the index must be separated by
+ * a character specified in tokens.
+ * Returns -1, when an error occurs.
+ *
+ * Example:
+ * getIndex("name_1_2", "_", 0) will return 1.
+ * getIndex("name_1_2", "_", 1) will return 2.
+ *
+ * @param string string to parse
+ * @param tokens delimiter of indices
+ * @param indexNumber position of index (starting at 0)
+ */
+int getIndex(const char* string, char* tokens, int indexNumber) {
+ char* string_copy;
+ char* token_pointer;
+ int index = 0;
+
+ string_copy = (char*) malloc(sizeof(char) * (strlen(string) + 1));
+ if (!string_copy) {
+ fprintf(stderr, "getIndex(): could not allocate memory.\n");
+ return -1;
+ }
+
+ strcpy(string_copy, string);
+
+ token_pointer = strtok(string_copy, tokens);
+ do {
+ token_pointer = strtok(NULL, tokens);
+ index++;
+ } while (index <= indexNumber && token_pointer != 0);
+
+ if (token_pointer) {
+ index = atoi(token_pointer);
+ free(string_copy);
+ return index;
+ }
+
+ return -1;
+}