С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 12.09.2012
Сообщений: 30

Работа с файловыми потоками. Выполнить проверку в готовом коде на верхний регистр

10.06.2014, 19:10. Показов 1560. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Хотел бы обратиться к аудитории этого сайта с данной проблемой-в программе, которую я написал, не выполняется одно условие-не проверяется заглавная буква(а так как рассматривается литературное произведение, заглавные буквы обязательны). Так вот, я не могу понять, как бы это сделать. Есть идеи копировать строчку, привести её в нижний регистр, проверить и на выходе уже восстановить все регистры.


Вот собственно задача:
Входной текстовый файл содержит отрывок литературного произведения. Необходимо сформировать выходной файл по следующему принципу: после каждого слова w1 входного файла необходимо через пробел вставить слово w2, оставив весь остальной текст без изменения. Данные слова можно вводить с клавиатуры.

Вот код программы:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    ifstream inp("input.txt");
    ofstream out("output.txt");
    string s, w1, w2;
    cout << "Enter word 1: ";
    cin >> w1;
    cout << "Enter word 2: ";
    cin >> w2;
    w1.insert(0, " "); //пробел перед w1
    int n = w1.size();
    unsigned int pos = 0;
    do
    {
        getline(inp, s);
        s.append(" "); //пробел в начало и конец s
        s.insert(0, " ");
        int slength = s.length();
        while (pos < s.length()) //пока не конец s, ищет w1
        {
            pos = s.find(w1, pos);
            if (pos != string::npos)
            {
                s.insert(pos+n, " "+w2);
                pos++;
            }
        }
        pos = 0;
        s.erase(0, 1); //удаляет пробел перед s
        out << s << endl;
    }
    while(!inp.eof());
    cout << "see results in output file" << endl;
    return 0;
}


Большая просьба-если у вас есть идеи по реализации проверки верхнего регистра, записать это в код. Потому что мозги уже, к сожалению, не варят...
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.06.2014, 19:10
Ответы с готовыми решениями:

Работа с файловыми потоками
Подскажите. Мне нужно считывать из файла базу данных. Первый элемент каждой строки эта фамилия. Последующие элементы это баллы. У каждой...

Работа с файловыми потоками
Принцип работы проги: Открывается окно с ListView (Без чекбоксов и мультивыделения), в который атоматом загружаются из файлов.txt данные по...

Работа с файловыми потоками
Получилось по заданию примерно как то так:Постановка задачи Входные данные: текстовый файл, содержащий значения средних температур за...

3
176 / 144 / 70
Регистрация: 01.05.2012
Сообщений: 414
10.06.2014, 19:38
beathoven, ну на сколько я понял, нужно сравнивать строки без учета регистра. Ну самое простое преобразовать обе к одному регистру и сравнить.
0
0 / 0 / 0
Регистрация: 12.09.2012
Сообщений: 30
10.06.2014, 20:48  [ТС]
Цитата Сообщение от _script_ Посмотреть сообщение
beathoven, ну на сколько я понял, нужно сравнивать строки без учета регистра. Ну самое простое преобразовать обе к одному регистру и сравнить.
Цитата Сообщение от _script_ Посмотреть сообщение
ну на сколько я понял, нужно сравнивать строки без учета регистра. Ну самое простое преобразовать обе к одному регистру и сравнить.
Вот смотри, что получается:
Мы, допустим, вводим фразу "Abs efgl abs sefl abs". Хотим, чтобы после "abs" у нас вставилось "asdf". Но на выходе у нас получается "Abs efgl abs asdf sefl abs asdf". Вот нужно что-то сделать с "Abs", а что, я ума не приложу, ей Богу.
0
176 / 144 / 70
Регистрация: 01.05.2012
Сообщений: 414
10.06.2014, 21:09
beathoven, tolower преобразовывает в нижний регистр
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.06.2014, 21:09
Помогаю со студенческими работами здесь

Работа с файловыми потоками
Доброго времени суток! Мне нужно из Данного числового файла f. Выбрать все значения, которые делятся нацело на 2 и 4, но не делятся на...

Работа с файловыми потоками
Доброго времени суток! Мне нужно из Данного числового файла f. Выбрать все значения, которые делятся нацело на 2 и 4, но не делятся на...

Работа с файловыми потоками в С++.
Помогите разобратсья в программе: Дан символьный файл f. Подсчитать число вхождений в файл каждой из букв a, b, c, d, e, f. Результат...

Правильная работа с файловыми потоками
Всем доброе время) Я столкнулся с проблемой - препод требует от меня правильного закрытия потоков(говорит, что сейчас работа с файловыми...

WinApi и работа с альтернативными файловыми потоками
Доброго времени суток. Пытаюсь разобраться с работой альтернативных файловых потоков в NTFS. Как я понял из C# с ними можно работать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru