#include #include #include #include const size_t MAX_SIZE = 256; const char* separators = " \r\n,.!?:;()-"; int main() { std::ifstream inputFile("example_input.txt"); // Здесь "example_input.txt" - название файла для чтения if (!inputFile.is_open()) { std::cerr << "Ошибка открытия файла!" << std::endl; return 1; } char text[MAX_SIZE]; // Считываем строку из файла inputFile.getline(text, MAX_SIZE); const char* start = text; // Алгоритм разбиения строки на слова и их вывод while (true) { // Определить, сколько разделителей находятся в начале строки const size_t separator_count = strspn(start, separators); // Пропустить их start += separator_count; // Если достигнут конец строки, закончить работу if (start[0] == '\0') { break; } // Найти первый разделитель от нового начала строки (длину слова) const size_t word_length = strcspn(start, separators); // Напечатать часть строки от начала слова до разделителя std::cout.write(start, word_length); // Напечатать символ перевода строки std::cout << '\n'; // Сдвинуть начало строки вперед на длину слова start += word_length; } inputFile.close(); // Закрываем файл после использования return 0; }