Предмет: Информатика, автор: kamovi2000

Написати програму на С++ використовуючи рядки у стилі С із приміренням як вбудованих функцій і так і без вбудованих функцій
1. обробку заданого рядка оформити у вигляді функції (обмін даними
має бути організовано лише через параметри)
2. дані (вихідний рядок) увести з файлу, результати вивести у файл
3. реалізувати перевірку коректності запису й зчитування файлу
(формат уведення-виведення вибрати самостійно).
4. оформити обчислення у вигляді консольного додатку
5. кожна функція повинна мати специфікацію у
вигляді коментарів
Саме завдання :
Задано рядок символів, що складається з довільного тексту, слова
розділено пробілами. Вивести на екран порядковий номер слова, що
накриває k-ту позицію (якщо на k-ту позицію припадає пробіл, то вивести
номер попереднього слова).

Ответы

Автор ответа: denisvah1993
0

Ответ:

Нижче наведено програму на мові C++, яка виконує задану операцію. Вона включає функцію findWordNumber, яка обробляє заданий рядок і повертає порядковий номер слова, яке накриває задану позицію.

#include <iostream>

#include <fstream>

#include <string.h>

using namespace std;

// Функція для обробки рядка та пошуку номера слова, яке накриває задану позицію

int findWordNumber(char str[], int pos) {

int wordCount = 0;

int len = strlen(str);

bool wordFound = false;

for (int i = 0; i < len; i++) {

if (!wordFound && str[i] != ' ') {

wordFound = true;

wordCount++;

}

else if (wordFound && str[i] == ' ') {

wordFound = false;

}

if (i == pos) {

return wordCount;

}

}

// Якщо позиція перевищує довжину рядка, то повертаємо номер останнього слова

if (pos >= len) {

return wordCount;

}

return -1; // Якщо позиція не знайдена

}

int main() {

// Відкриття файлу з вхідними даними та перевірка коректності його відкриття

ifstream inputFile("input.txt");

if (!inputFile) {

cout << "Помилка відкриття файлу!" << endl;

return 1;

}

// Зчитування рядка з файлу та закриття файлу

char str[1000];

inputFile.getline(str, 1000);

inputFile.close();

// Виведення рядка на екран

cout << "Вхідний рядок: " << str << endl;

// Зчитування позиції та виклик функції для пошуку номера слова

int pos;

cout << "Введіть позицію: ";

cin >> pos;

int wordNum = findWordNumber(str, pos);

// Виведення результату на екран та запис у вихідний файл

ofstream outputFile("output.txt");

if (!outputFile) {

cout << "Помилка відкриття файлу!" << endl;

return 1;

}

cout << "Номер слова: " << wordNum << endl;

outputFile << wordNum << endl;

outputFile.close();

return 0;

}

Програма відкриває файл з вхідними даними (input.txt) та зчитує рядок з цього файлу. Потім вона виводить

Похожие вопросы
Предмет: Другие предметы, автор: terekhovaleksandr18
Предмет: Геометрия, автор: berezukdaniil36