diff --git a/src/cats_strings/cats_strings.c b/src/cats_strings/cats_strings.c index 4572f1d24e2b6ab415ee8a47bc93d82799419306..7ae39f34c02dacb189d7a090e0d066c90ad3482e 100644 --- a/src/cats_strings/cats_strings.c +++ b/src/cats_strings/cats_strings.c @@ -136,6 +136,17 @@ struct string_array *new_string_array() return result; } +const char *get_nth_string_from_array(const struct string_array *array, int n) +{ + assert(array != NULL); + if (n < 0 && n >= array->count) { + log_message(LOG_ERROR, "%s: requested string index %d out of range [0, %d]", __func__ , n, array->count); + exit(EXIT_FAILURE); + } + + return array->string[n]; + +} struct string_array *new_string_array_init(const char *entry) { diff --git a/src/cats_strings/cats_strings.h b/src/cats_strings/cats_strings.h index 27cdaff7869c746300bf4c0ac48463109db65d7a..b2cc9b4b9f3a0e70c194681324a1fafe7788c020 100644 --- a/src/cats_strings/cats_strings.h +++ b/src/cats_strings/cats_strings.h @@ -88,7 +88,7 @@ void string_array_add_double(struct string_array *array, double number, const ch void string_array_add_int_conditional(struct string_array *array, int32_t number, const char *format_string, bool condition); - +const char *get_nth_string_from_array(const struct string_array *array, int n); void print_string_array(const struct string_array *array); char *remove_0th_token(char *line, const char *sep);