Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 24.03.2019
Сообщений: 1
1

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

24.03.2019, 22:09. Показов 1822. Ответов 2

Author24 — интернет-сервис помощи студентам
Добрый вечер! Проблема с заданием по теме "строки и файлы": не получается написать основную часть, где и выполняется суть задачи (циклы). Прошу помощи написать основную часть и циклы (желательно через for). Буду очень благодарна за подробные комментарии! Заранее спасибо большое за помощь!

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

Код программы (что получилось):
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
#include "pch.h"
#include <iostream>
#include <fstream>
using namespace std;
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "rus");
    
    ifstream fin; //ввод
    fin.open("C:\\Users\\admin\\input.txt", ios::in);
    if (!fin) {
        cout << "Ошибка открытия выходного файла!";
    }
    char str[100];
    fin.get(str, 100); 
    cout << "Исходное предложение: " << str << endl; //вывод исходного текста из текстового документа
 
    //основная часть, которая не получается. написала, что смогла :(
        fin.seekg(0, ios::end); //определение длины файла. передвижение в конец
 
    fin.close(); //закрытие файла
    system("pause");
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2019, 22:09
Ответы с готовыми решениями:

Заменить каждую первую букву слов, начинающихся с гласной буквы, на прописную
В произвольно взятом предложении (английский шрифт) заменить каждую первую букву слов, начинающихся...

Заменить каждую первую букву слов, начинающихся с гласной буквы, на прописную
Написать программу, которая считывает английский текст из файла и выводит его на экран, заменив...

Работа со строками. Заменить каждую первую букву в словах, начинающихся с гласной буквы на прописную
Заменить каждую первую букву в словах, начинающихся с гласной буквы на прописную. Что только не...

Заменить в файле каждую первую букву слова на прописную
Написать программу, которая считывает текст из файла и выводит его на экран, заменив каждую первую...

2
6092 / 3450 / 1402
Регистрация: 07.02.2019
Сообщений: 8,775
24.03.2019, 23:53 2
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
41
42
43
44
45
46
47
48
#include "pch.h"
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
#include <iterator>
 
using namespace std;
 
void change(string& s) {
    char ch = toupper(s.front());
    if (ch == 'A' ||
        ch == 'E' ||
        ch == 'I' ||
        ch == 'O' ||
        ch == 'Y')
        s[0] = ch;
}
int main()
{
    setlocale(LC_ALL, "rus");
 
    ifstream fin("C:\\Users\\admin\\input.txt"); //ввод
 
    if (!fin) {
        cout << "Ошибка открытия выходного файла!";
        exit(1);
    }
 
    istream_iterator<string> ibegin(fin);   //Итератор ввода из потока fin
    istream_iterator<string> iend;          //Итератор-метка конца потока
    ostream_iterator<string> iout(cout, " ");//Итератор вывода в поток cout
 
    vector<string> words(ibegin, iend);     //инициализируем вектор данными из потока
 
    cout << "Исходное предложение: ";
    copy(words.begin(), words.end(), iout); //вывод исходного текста в поток cout
    cout << endl;
 
    for (auto& word : words) change(word);  //преобразуем слова
 
    cout << "Преобразованное предложение: ";
    copy(words.begin(), words.end(), iout); //вывод обработанного текста в поток cout
    cout << endl;
 
    system("pause");
    return 0;
}
0
5 / 3 / 3
Регистрация: 13.07.2017
Сообщений: 23
25.03.2019, 00:00 3
Лучший ответ Сообщение было отмечено Adeliiina как решение

Решение

Добрый вечер. У меня получилось что то такое

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
#include <iostream>
#include <fstream>
 
int main()
{
    const int SIZE = 500;   // Размер массива, в который будем записывать текст                        
    const int VW = 5;       // Кол-во гласных букв в англ языке
 
    const char vowels[VW] = {'a', 'e', 'i', 'o', 'u'};  // Это наши гласные буквы
    int szFile = 0;
 
    std::ifstream fin;
 
    char buffer[SIZE] = " ";                // Сюда буду записывать текст из файла
 
    fin.open("prog.txt");
    fin.getline(buffer, 500);
    szFile = fin.gcount();                  // Кол-во букв в тексте
    fin.close();
 
    // Вот вроде то, что вы просили, цик for
    for(int i = 0; i < szFile; i++)
    {
        for(int j = 0; j < VW; j++)
        {
            if(buffer[i-1] == ' ' && buffer[i] == vowels[j]) buffer[i] = (int)buffer[i] - 32;   //Нуу если отнять от ASCII кода строчной буквы отнять 32, получаем заглавную
        }
    }
 
    // Вывод текста в консоль
    for(int i = 0; i < szFile; i++)
    {
        std::cout<<buffer[i];
    }
}
Наверное там много чего можно убрать, сделать лучше и т.д. Я с файлами вообще впервые дело имею поэтому вот.
Вроде работает. Часть с циклами я показал.
1
25.03.2019, 00:00
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.03.2019, 00:00
Помогаю со студенческими работами здесь

Программа которая заменяет первую букву слова с гласной на прописную
Написать программу, которая считывает английский текст из текстового файла и выводит его на экран,...

В каждом слове заменить первую букву на прописную
Дана строка символов, состоящая из произвольного текста, слова разделены пробелами. В каждом слове...

Удаление слов, начинающихся с гласной буквы, из строки
Есть программа #include&lt;iostream&gt; #include&lt;cstring&gt; using namespace std; void reversit(char );...

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru