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

Найти в тексте самую длинную последовательность из одинаковых букв - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
12.06.2013, 23:20     Найти в тексте самую длинную последовательность из одинаковых букв #1
Здравствуйте! Нужно написать программу, которая выполняет следующие функции: найти в тексте самую длинную последовательность из одинаковых букв. Текст пользователь вводит самостоятельно

Добавлено через 9 часов 47 минут
Помогите, ребята, пожалуйста... Мне на завтра это
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.06.2013, 23:20     Найти в тексте самую длинную последовательность из одинаковых букв
Посмотрите здесь:

подсчитать самую длинную последовательность подряд идущих букв а C++
C++ Определить самую длинную последовательность цифр в тексте
C++ Дана строка. Подсчитать самую длинную последовательность подряд идущих букв а
Подсчитать самую длинную последовательность подряд идущих букв а C++
C++ Вывести самую длинную последовательность букв, расположенных между двумя пробелами
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
13.06.2013, 02:46     Найти в тексте самую длинную последовательность из одинаковых букв #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
#include <iostream>
#include <string>
 
int main()
{
    std::string str;
    getline(std::cin, str);
 
    int i = 0;
    size_t str_size = str.size();
    std::pair<char, int> max = {' ', 0};
 
    while (i < str_size) {
        int j = i;
        while ( str[++j] == str[i] );
        if ( j - i > max.second )
            max = { str[i], j - i };
        i = j;
    }
 
    std::cout << max.first << std::endl << max.second;
    return 0;
}
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
13.06.2013, 13:21  [ТС]     Найти в тексте самую длинную последовательность из одинаковых букв #3
Olivеr, спасибо огромное!

Добавлено через 9 часов 55 минут
Olivеr, Вы можете написать эту же программу с использованием функций? Они являются обязательными условиями(
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
13.06.2013, 13:32     Найти в тексте самую длинную последовательность из одинаковых букв #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
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <string>
 
std::string inputStr()
{
    std::string str;
    getline(std::cin, str);
    return str;
}
 
std::pair<char, int> longestSeq(const std::string &str)
{
    int i = 0;
    size_t str_size = str.size();
    std::pair<char, int> max = {' ', 0};
 
    while (i < str_size) {
        int j = i;
        while ( str[++j] == str[i] );
        if ( j - i > max.second )
            max = { str[i], j - i };
        i = j;
    }
    return max;
}
 
int main()
{
    std::string str = inputStr();
    int i = 0;
    size_t str_size = str.size();
    std::pair<char, int> max = longestSeq(str);
    std::cout << max.first << std::endl << max.second;
    return 0;
}
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
13.06.2013, 13:50  [ТС]     Найти в тексте самую длинную последовательность из одинаковых букв #5
Olivеr, Спасибо Вам огромнейшее! Можно Вам еще 1 вопрос задать?

Добавлено через 1 минуту
Olivеr, почему Вы около подключения библиотек не пишите
C++
1
using namespace std;
А пользуетесь таким методом
C++
1
std::
?
Правда интересно
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
13.06.2013, 13:56     Найти в тексте самую длинную последовательность из одинаковых букв #6
Если указать
C++
1
using namespace std;
, то компилятор будет искать все функции в этом пространстве имен. Иногда это очень неудобно и приводит к ошибкам. Особенно когда разрабатывается/используется класс, возникают конфликты имен и тп. В маленьких программах можно делать как угодно. В крупных проектах обычно указывают пространство. А в хедерах указывать пространство - очень плохой стиль потому, что вместе с ним подключается всё, что подключаем он сам.
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
14.06.2013, 03:54  [ТС]     Найти в тексте самую длинную последовательность из одинаковых букв #7
Olivеr, спасибо за очень хороший ответ!)

Добавлено через 13 часов 54 минуты
Olivеr, программа не работает(
Список ошибок:
- 4 error C1010: непредвиденный конец файла во время поиска предкомпилированного заголовка. Возможно, вы забыли добавить директиву "#include "StdAfx.h"" в источник. c:\users\taybok\documents\visual studio 2010\projects\rgr14\rgr14\rgr14.cpp 39
- 5 IntelliSense: инициализация объектов типа "std:air<char, int>" с помощью выражения {...} не допускается c:\users\taybok\documents\visual studio 2010\projects\rgr14\rgr14\rgr14.cpp 18

- 6 IntelliSense: требуется выражение c:\users\taybok\documents\visual studio 2010\projects\rgr14\rgr14\rgr14.cpp 24
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
14.06.2013, 12:27     Найти в тексте самую длинную последовательность из одинаковых букв #8
Работает. http://ideone.com/kLSlfv
Включите режим С++11 или исправьте списки инициализации {...} на make_pair и добавьте хедер
Я с телефона поэтому не помогу
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
14.06.2013, 19:57  [ТС]     Найти в тексте самую длинную последовательность из одинаковых букв #9
Olivеr, что такое С++11?
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
14.06.2013, 20:03     Найти в тексте самую длинную последовательность из одинаковых букв #10
Toda, стандарт
вот для вашего визуал студио
Кликните здесь для просмотра всего текста
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 "StdAfx.h"
#include <iostream>
#include <string>
#include <utility>
 
std::string inputStr()
{
    std::string str;
    getline(std::cin, str);
    return str;
}
 
std::pair<char, int> longestSeq(const std::string &str)
{
    int i = 0;
    size_t str_size = str.size();
    std::pair<char, int> max(' ', 0);
 
    while (i < str_size) {
        int j = i;
        while ( str[++j] == str[i] );
        if ( j - i > max.second )
            max = std::make_pair( str[i], j - i );
        i = j;
    }
    return max;
}
 
int main()
{
    std::string str = inputStr();
    int i = 0;
    size_t str_size = str.size();
    std::pair<char, int> max = longestSeq(str);
    std::cout << max.first << std::endl << max.second;
    return 0;
}
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
16.06.2013, 17:35  [ТС]     Найти в тексте самую длинную последовательность из одинаковых букв #11
Olivеr, она у меня работает без подключения библиотеки
C++
1
#include "StdAfx.h"
, это нормально?

Добавлено через 7 минут
Olivеr, но работает корректно, правильно
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
16.06.2013, 18:04     Найти в тексте самую длинную последовательность из одинаковых букв #12
Toda, я не пользуюсь визуал поэтому у меня она не подключена
Thinker
Эксперт C++
 Аватар для Thinker
4215 / 2189 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
16.06.2013, 18:11     Найти в тексте самую длинную последовательность из одинаковых букв #13
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
#include<stdio.h>
#define N 1024
 
char *Count(char *s, char c)
{
   return *s && (*s) == c ? Count(s + 1, c) : s;
}
 
int main()
{
   char s[N], max = 0, *b, *c, *d = s;
   fgets(s, N, stdin);
   b = s;
   while(*b)
   {
       c = Count(b + 1, *b);
       if (c - b > max)
       {
          max = c - b;
          d = b;
       }
       b = c;
   }
   printf("max = %d\n", max);
   *(d + max) = '\0';
   puts(d);
   return 0;
}
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
17.06.2013, 16:32  [ТС]     Найти в тексте самую длинную последовательность из одинаковых букв #14
Olivеr, а в какой среде Вы пишите?
Olivеr
17.06.2013, 17:49
  #15

Не по теме:

Toda, я использую компилятор MinGW GCC, IDE Code::Blocks и Qt 5.

MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.06.2013, 00:35     Найти в тексте самую длинную последовательность из одинаковых букв
Еще ссылки по теме:

Дана строка. Подсчитать самую длинную последовательность подряд идущих букв а C++
C++ В данном тексте найти самую длинную последовательность символов, не содержащую пробелов
C++ Найти в тексте самую длинную последовательность символов, не содержащую пробелов

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

Или воспользуйтесь поиском по форуму:
Toda
10 / 10 / 0
Регистрация: 16.11.2012
Сообщений: 320
19.06.2013, 00:35  [ТС]     Найти в тексте самую длинную последовательность из одинаковых букв #16
Olivеr, Вы можете блок-схему сделать к этой программе, пожалуйста?
Yandex
Объявления
19.06.2013, 00:35     Найти в тексте самую длинную последовательность из одинаковых букв
Ответ Создать тему
Опции темы

Текущее время: 03:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru