У меня есть несколько вопросов относительно массива строк в C.
У меня есть массив char *string
. У меня есть строка char *, а затем я разделяю каждые 4 символа в массив строк с именем sep_str. Например, если char *string = 'The sum';
, то char **sep_str
равно:
0: |_| --> "The "
1: |_| --> "Sum"
Мой первый вопрос: в массиве строк в C (то есть в массиве массивов символов), будет ли нулевой завершающий символ в конце каждого sep_str [i] или только в последней позиции sep_str? Вот как я копирую string
в массив строк:
for (int i = 0; i < str_length; i++) {
sep_str[i/4][i%4] = *ptr;
ptr++;
}
Мой второй вопрос: как мне обратить элементы каждой строки в sep_str
? Вот как я это сделал, но я чувствую, что он выходит из массива подстроки. (так из элемента sep_str):
// Reverse each element in the array
char temp;
for (int i = 0; i < num_strs; i++) {
for (int j = 0, k = 4; j < k; j++, k--) {
temp = sep_str[i][j];
sep_str[i][j] = sep_str[i][k];
sep_str[i][k] = temp;
}
}