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

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

Войти
Регистрация
Восстановить пароль
 
eyesdontlie
0 / 0 / 0
Регистрация: 05.06.2014
Сообщений: 2
#1

Удалить все слова в тексте, которые начинаются и заканчиваются на одну и ту же букву - C++

05.06.2014, 19:21. Просмотров 773. Ответов 3
Метки нет (Все метки)

Пропустил несколько занятий по дисциплине, задали написать программу с использованием строк и библиотекой <string.h> Пытался сам разобраться с этой темой в интернете, но безуспешно. Помогите написать простенькую программу, сам я ее не могу осилить. Задание: Разработать программу, которая удаляет все слова в тексте, которые начинаются и заканчиваются на одну и ту же букву. Если можно, то объясните вкратце, какие функции выполняют команды в этой программе. Заранее благодарю.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.06.2014, 19:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Удалить все слова в тексте, которые начинаются и заканчиваются на одну и ту же букву (C++):

Удалить все слова, которые начинаются и заканчиваются за одну и ту же букву - C++
Уничтожить все слова, которые начинаются и заканчиваются за одну и ту же букву. Я написал чтобы оно мне эти слова вывело а оно и того не...

Вывести все слова, которые начинаются и заканчиваются на одну букву - C++
Задан текст заканчивающийся точкой. Вывести все слова, которые начинаются и заканчиваются на одну букву.

Найти и вывести слова которые начинаются и заканчиваются на одну и ту же букву - C++
дана строка. найти и вывести слова которые начинаются и заканчиваются на одну и ту же букву(например слово &quot;около&quot;).заранее...

Удалить все числа, которые начинаются и заканчиваются на одну и ту же цифру - C++
в одномерном массиве заменить все числа начинаются и заканчиваются на одну и ту же цифру Добавлено через 3 минуты сори ошибка в...

Масивы: удалить все числа которые начинаются и заканчиваются на одну и ту же цифру - C++
В одномерном массиве удалить все числа начинаются и заканчиваются на одну и ту же цифру

Посчитать количество строк в файле, которые начинаются и заканчиваются на одну и ту же букву - C++
задание : В исходном текстовом файле «In.txt» посчитать количество строк, которые начинаются и заканчиваются на одну и ту же букву. В...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
GuGo1991
267 / 261 / 93
Регистрация: 02.08.2012
Сообщений: 609
05.06.2014, 20:00 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
eyesdontlie

Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <conio.h>
#include <string>
//#include <cctype>
 
int main()
{
    std::string str;
    std::cout << "Type some text: ";
    getline(std::cin, str); //Ââîäèì ГІГҐГЄГ±ГІ
    
    char* chStr = new char[str.size() + 1];
    strcpy(chStr, str.c_str());
    
    char* p = strtok(chStr, " ,.:;!?\"()");
    while(p != NULL)
    {
        std::string temp = p;
        if(temp.size() > 1) //Åñëè ñëîâî ñîñòîèò Г*ГҐ ГЁГ§ îäГ*îé ГЎГіГЄГўГ»
        {
            //if(tolower(temp[0]) == tolower(temp[temp.size() - 1])) //Åñëè Г*ГҐ Г*Г*äî ó÷èòûâГ*ГІГј ðåãèñòð
            if(temp[0] == temp[temp.size() - 1]) //Åñëè ïåðâûé ñèìâîë èäåГ*ГІГЁГ·ГҐГ* ïîñëåäГ*åìó
            {
                size_t found = str.find(temp);
                if(found != std::string::npos) //ГЌГ*õîäèì ГЁГ*äåêñ ñëîâГ*
                    str.replace(found, temp.size() + 1, ""); //Г‡Г*ìåГ*ГїГҐГ¬ ýòîò "êóñîê" Г*Г* ""
            }
        }
        p = strtok(NULL, " ,.:;!?\"()");
    }
    
    std::cout << str << std::endl;
    
    delete [] chStr;
    
    std::cout << "\nOperation succeeded\n";
    getch();
}

Работу функций strcpy() и strtok() я описывал в этой теме
Добавлено через 6 минут
Поиск одинаковых слов в тексте
1
montkay
10 / 10 / 8
Регистрация: 19.02.2014
Сообщений: 72
05.06.2014, 21:18 #3
Мой код программы. Возможно это не совсем, что нужно, потому что не добавляет часть строки, которая имеет одинаковый символ вначале и в конце (пробельные символы не в счет).

При написании программы использовал функцию isspace() из библиотеки <string.h>. Эта функция возвращает "истина", если символ, помещенный в скобки, является пробельным символом (пробелом, табуляцией или символом новой строки).

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
49
50
51
52
53
#include <iostream>
#include <string>
#include <string.h>
using namespace std;
 
int main()
{
    cout << "Enter a text:\n";
    string text;
    getline(cin, text);
 
    char ch;
    int k = text.length();
    if (k)
    {
        string temp;
        string word;
        for (int i = 0; i < k; i++)
        {
            ch = text[i];
            if (!isspace(ch))
                word += ch;
            else
            {
                int size = word.length();
                if (size > 2)
                    if (word[0] == word[size-1])
                    {
                        word = "";
                        continue;
                    }
                temp += word;
                temp += ch;
                word = "";
            }
            if (i == k - 1)
            {
                int size = word.length();
                if (size > 2)
                    if (word[0] == word[size-1])
                    {
                        word = "";
                        continue;
                    }
                temp += word;
            }
        }
        text = temp;
        cout << text << '\n';
    }
    else
        cout << "There is nothing\n";
}
1
eyesdontlie
0 / 0 / 0
Регистрация: 05.06.2014
Сообщений: 2
06.06.2014, 01:19  [ТС] #4
Спасибо большое за помощь)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.06.2014, 01:19
Привет! Вот еще темы с ответами:

Удалить из строки все слова, которые начинаются на заглавную букву - C++
слова в строке могут разделяться пробелами и знаками препинания,в конце &quot;.&quot; необходимо удалить из строки все слова,которые начинаются на...

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

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

Удалить все слова, которые содержат хотя бы одну латинскую букву - C++
Подскажите, почему не работает программа, пожалуйста. :scratch:#include &quot;stdafx.h&quot; #include &lt;iostream&gt; #include &lt;sstream&gt; ...


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

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

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