Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Aecttann
6 / 6 / 5
Регистрация: 19.10.2013
Сообщений: 342
#1

Одинаковые группы букв и вывод их количества: переделать, чтобы находились абсолютно все группы - C++

19.06.2014, 23:42. Просмотров 546. Ответов 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
#include <fstream>
#include <iostream>
#include <string.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "RUS");
 
ifstream f("t.txt");
ofstream out("t1");
 
if(!f)
 
    {
 
        cout << "sory!";
        return 1;
    }
 
    int n=0;
    char p=0,s=0;
 
    for(;!f.eof();)
        {
            p=0;
            f.get(p);
            if(s!=p)
            out<<p;
            if(s==p)
            n++;
            s=p;
            cout << s;
        }
 
        out.close();
        f.close();
        cout << endl << "Количество одинаковых символов = " << n;
return 0;
 
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2014, 23:42
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Одинаковые группы букв и вывод их количества: переделать, чтобы находились абсолютно все группы (C++):

Устранить из строки все заданные группы букв
Создать функцию обработки строки, который может содержать любое количество произвольных символов. Устранить все заданные группы...

В строке удалить все заданные группы букв
Добрый Вечер! Помогите пожалуйста! В строке удалить все заданные группы букв.

Удалит из данной последовательности все группы букв вида abcd
очень нужно написать 2 проги на С....помогите кто чем может 1.даны натуральное число n, символы S1,..., Sn.Удалит из данной...

Дана строка символов. Удалить из данной строки все группы букв вида asdf
На выходе такая же строка, как и на входе. //Дана строка символов //Удалить из данной строки все группы букв вида asdf ...

Создать текстовый файл содержащий все группы слов из словаря отличающиеся расположением букв
Нужно сделать лабу,я впринципе копирование сделал,но вот только он дальше проверки 1ого слова не идёт =( Дан текстовый файл-словарь (в...

Дан текстовый файл f. Переписать текст в файл g, удалив все группы букв s (s передается параметром)
В общем нужно из строки удалить подстроку, которая задается с клавиатуры

3
GuGo1991
269 / 263 / 146
Регистрация: 02.08.2012
Сообщений: 609
20.06.2014, 01:21 #2
Цитата Сообщение от Aecttann Посмотреть сообщение
Как переделать, чтобы находились абсолютно все группы?
Что подразумевается под группой? Надо исключить пробелы, знаки, символы? Приведите пример.
0
Aecttann
6 / 6 / 5
Регистрация: 19.10.2013
Сообщений: 342
20.06.2014, 10:57  [ТС] #3
GuGo1991, допустим, в файле мм нн гг поп, прога выведет, что количество одинаковых символов - 3, так как увидит только первые три группы букв, а две буквы п, в слове поп, не увидит и не выведет
0
GuGo1991
269 / 263 / 146
Регистрация: 02.08.2012
Сообщений: 609
20.06.2014, 14:34 #4
Лучший ответ Сообщение было отмечено Aecttann как решение

Решение

Aecttann
Кликните здесь для просмотра всего текста
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
#include <iostream>
#include <string>
#include <fstream>
#include <conio.h>
 
int main()
{
    std::ifstream file("file.txt");
    if(file)
    {
        std::string str, temp;
        int counter = 0;
        while(file >> str)
        {
            temp = str;
            for(int i = 0; i < temp.size(); i++)
            {
                int size = temp.size();
                size_t found = temp.find(temp[i], i + 1);
                while(found != std::string::npos)
                {
                    temp.replace(found, 1, "");
                    found = temp.find(temp[i], found + 1);
                }
                if(size > temp.size()) counter++;
            } 
        }
        file.close();
        std::cout << "\nSame symbols quantity: " << counter << std::endl;
    }
    else
        perror("Error");
    
    std::cout << "\nOperation succeeded\n";
    getch();
    return 0;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2014, 14:34
Привет! Вот еще темы с решениями:

Отсортировать массив из 0 и 1 так, чтобы все нули находились в начале, а все единицы - в конце массива
Тема: Функции 1. Дано одномерный массив, заполненный 0 и 1 в произвольном порядке. Отсортировать данный массив таким образом, чтобы все...

Журнал успеваемости студенческой группы (переделать с Паскаля на С++)
Журнал успеваемости студенческой группы. Предусмотреть выставление и исправление оценок, статистическую обработку оценок (средние баллы,...

Число вхождений группы букв
#include &lt;iostream&gt; #include&lt;conio.h&gt; using namespace std; int main() { char text = &quot;&quot;; gets(text); char...

удалить из последовательности группы букв
Даны натуральное число n, символы S1....Sn. Удалить из данной последовательности все группы букв вида abcd. помогите написать программу я...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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