Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Макс_Фомин
0 / 0 / 0
Регистрация: 31.03.2014
Сообщений: 10
#1

Напишите программу, считывающую строку текста и заменяющую все четырехбуквенные слова словом "love" - C++

31.03.2014, 14:56. Просмотров 728. Ответов 4
Метки нет (Все метки)

Напишите программу, считывающую строку текста и заменяющую все четырехбуквенные слова словом "love". Например, для входной строки
I hate you, you dodo!
программа должна вывести следующее: I love you, you love!
Конечно, результат часто будет получаться бессмысленным. Так, для входной строки
John will run home.
будет выведено: Love love run love.
Если четырехбуквенное слово начинается с заглавной буквы, оно должно быть заменено словом "Love", а не "love". Регистр остальных букв, кроме первой, проверять не нужно. Словом называется любая строка, состоящая из букв и ограниченная с каждой стороны пробелом, символом конца строки или другим символом, не являющимся буквой. Программа должна повторять эти действия до тех пор, пока пользователь не захочет закончить работу.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.03.2014, 14:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Напишите программу, считывающую строку текста и заменяющую все четырехбуквенные слова словом "love" (C++):

Удалить из текста все слова, оканчивающиеся группой букв "ing" и "ed" - C++
Помогите пожалуйста с задачей на массив слов: Дан текст. Удалить все слова, оканчивающиеся группой букв ing и ed.

Преобразовать строку, заменяя каждое слово "this" словом "that". - C++
подскажите в чем ошибка задание:Преобразовать строку, заменяя каждое слово "this" словом "that". #include <iostream> #include...

Тестовые файлы: преобразовать строку, удалив из нее все четырехбуквенные слова - C++
помогите пожалуйста разобраться, нужно преобразовать строку , удалив из нее все четырехбуквенные слова, подпрограмму обработки строки...

Выделить из текста все слова которые имеют длину 6 символов и начинаются на "С" - C++
Ввести текст состоящий не менее чем из 15 слов. Выделить из текста все слова которые имеют длину 6 символов и начинаются на "С"

Удалить из текста все слова в которых буква "а" встречается более двух раз - C++
Все слова, в которых буква "а" встречается более 2-х раз, удалить из текста. Вывести полученную строку на экран, Если такой буквы нет,...

Написать программу заменяющую точки на "?" - C++
Написать программу заменяющую точки на "?" Напишите пожалуйста программу в Си

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MicM
822 / 489 / 90
Регистрация: 29.12.2009
Сообщений: 1,097
Завершенные тесты: 1
31.03.2014, 15:33 #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
#include <iostream>
#include <cstring>
#include <cctype>
using namespace std;
 
int main()
{
    const int maxLength = 128;
    char exit;
    do
    {
        char str[maxLength]="";
        cin.get(str,maxLength);
        int length = strlen(str);
        int i = 0;
        while (i<length)
        {
            if (isalpha(str[i]))
            {
                int j = i;
                while (i<length && isalpha(str[i]))
                    ++i;
                if (i-j==4)
                {
                    if (!islower(str[j]))
                        str[j] = 'L';
                    else str[j] = 'l';
                    str[j+1]='o';
                    str[j+2]='v';
                    str[j+3]='e';
                }
            }
            else ++i;
        }
        cout <<str <<endl
             <<"Continue? (y/n): ";
        do
            cin >> exit;
        while (exit!='y' && exit!='n');
        cin.ignore();
    }
    while (exit=='y');
    return 0;
}
2
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
31.03.2014, 16:02 #3
как то так
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
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <sstream>
 
std::vector<std::string> split(const std::string& source)
{
    std::vector<std::string> result;
 
    std::stringstream stream(source);
    std::string str;
 
    while (stream >> str)
        result.push_back(str);
 
    return result;
}
 
int main()
{
    std::string inputStr;
    std::vector< std::string > vecStr;
 
    std::cout << "input string : ";
    while(true)
    {
       std::getline(std::cin, inputStr);
 
       vecStr = split(inputStr);
 
       for(size_t i = 0; i < vecStr.size(); ++i)
         if(vecStr[i].size() == 4 && i == 0)
            vecStr[i] = "Fuck";
         else if(vecStr[i].size() == 4 && i != 0)
            vecStr[i] = "fuck";
 
         std::for_each(vecStr.begin(), vecStr.end(), [](std::string s){ std::cout << s << " "; }); std::cout << std::endl;
 
         std::cout << '\n' << "input string : ";
    }
    return 0;
}
0
igorrr37
1647 / 1275 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
31.03.2014, 16:20 #4
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
#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
#include <cctype>
 
int main()
{
    std::string str("Ffff, df dddd 54.   Gggg."), cstr = str;
    int wlen = 4;
    std::replace_if(cstr.begin(), cstr.end(), [](char const c){return ispunct(c);}, ' ');
    std::stringstream sstr(cstr);
    std::string::iterator it(str.begin());
    while(sstr >> cstr)
    {
        it = std::find_if(it, str.end(), [](char const c){return !ispunct(c) && !isspace(c);});
        if(wlen == cstr.size())
        {
            str.replace(it - str.begin(), wlen, std::string(isupper(cstr.at(0)) ? "L" : "l") + "ove");
        }
        it += cstr.size();
    }
    std::cout << str << "\n\n";
    return 0;
}
0
IGPIGP
Комп_Оратор)
Эксперт по математике/физике
6471 / 3119 / 306
Регистрация: 04.12.2011
Сообщений: 8,594
Записей в блоге: 4
31.03.2014, 16:41 #5

Не по теме:

Хорошую строчку придумал для замены:
char str[] =
"If you my friend is realy lover,\
You need the woman, right to help her."


0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
31.03.2014, 16:41
Привет! Вот еще темы с ответами:

Все слова, не содержащие "bc" и заканчивающиеся на "ad" заменить на "!" - C++
В чем ошибка? //Все слова, не содержащие &quot;bc&quot; и заканчивающиеся на &quot;ad&quot; заменить на &quot;!&quot; #include &lt;iostream&gt; #include &lt;string&gt; ...

Ввести строку. Вывести её, заменив цифры на слова ( 0 - "one", 1 - "two", ...) - C++
Ввести строку. Вывести её, заменив цифры на слова: ( 0 - &quot;one&quot;, 1 - &quot;two&quot;, ...)???

Введите предложение, в данной строке нужно заменить все слова "погрешность" на "ошибка" - C++
Введите предложение, в данной строке нужно заменить все слова &quot;погрешность&quot; на &quot;ошибка&quot;.

Из слова "яблоко" путем склеек и вырезок его букв получить слова "блок" и "око" - C++
Самым самым самым простым способом.


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
31.03.2014, 16:41
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru