Поскольку у вас уже есть код для печати слов одной строки в обратном порядке, я бы предложил сделать функцию , которая принимает в качестве аргумента одну строку, то есть:
void print_words_reverse(char * const str) {
// your current code here
}
Затем вы можете вызывать ее отдельно для каждой строки:
char strings[][30] = {
"This is the first sentence",
"And this is the second"
};
for (int i = 0; i < sizeof(strings) / sizeof(*strings); ++i) {
print_words_reverse(strings[i]);
}
Обратите внимание, что поскольку вы модифицируете строку (заменяя пробелы на NUL-байты), аргумент должен быть изменяемым, что означает, что выне разрешается вызывать его (в стандарте C) с указателем на строковый литерал, что означает, что вы не можете просто использовать const char *strings[] = { "first", "second" }
.Вы можете избавиться от уродливой постоянной длины (здесь 30
), зарезервированной для каждой строки, если ваш код не будет изменять строку аргумента.Или вы можете иметь отдельный массив символов для каждого предложения, а затем использовать указатели на эти (изменяемые) строки.