This is more complex in C then in other high level languages. Important thing to know is that C doesn't have a string type - strings are implemented as null-terminated arrays of characters, these are widely called C-strings. Caveat is that a character array is not a string unless it is null-terminated.
On to the concrete.
Code:
char str[3];
str[0] = 'a';
str[1] = 'b';
str[2] = 'c';
// `str` is not a string, but an array of char, containing 'a', 'b' and 'c'.
str[2] = '\0';
// `str` now a C-string, as it is null-terminated, and can be used
// with C library's string manipulation functions.
To get an array of strings, you can declare an array of char arrays, just like so:
Code:
char str_array[5][20];
// `str_array` is an array of 5 20-element char arrays; you can use it
// to store 5 C-strings, each 19 chracters long (19 characters + null-byte).
// Used like this...
for (int i = 0; i < 5; ++i) {
scanf("%19s", str_array[i]);
// `"%19s"` for read at most 19 characters; null-byte is added as 20th by `scanf()`;
}
Alternatively, you could declare `str_array` as an array of pointers-to-char and use it to store pointers to dynamically allocated memory that would actually hold your strings. This would free your program of arbitrary limitations on string length. Implementation is left as an exercise.