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

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

12.06.2013, 23:20. Показов 7913. Ответов 15
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Нужно написать программу, которая выполняет следующие функции: найти в тексте самую длинную последовательность из одинаковых букв. Текст пользователь вводит самостоятельно

Добавлено через 9 часов 47 минут
Помогите, ребята, пожалуйста... Мне на завтра это
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.06.2013, 23:20
Ответы с готовыми решениями:

Найти в тексте самую длинную последовательность символов, не содержащую пробелов
Нужно в тексте найти самую длинную последовательность символов, не содержащую пробелов. Если таких...

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

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

Найти в строке S самую длинную последовательность подряд идущих одинаковых символов
Напишите программу, которая считывает с клавиатуры строку S и находит в строке S самую длинную...

15
415 / 411 / 95
Регистрация: 06.10.2011
Сообщений: 832
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;
}
2
10 / 10 / 1
Регистрация: 16.11.2012
Сообщений: 320
13.06.2013, 13:21  [ТС] 3
Olivеr, спасибо огромное!

Добавлено через 9 часов 55 минут
Olivеr, Вы можете написать эту же программу с использованием функций? Они являются обязательными условиями(
0
415 / 411 / 95
Регистрация: 06.10.2011
Сообщений: 832
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;
}
1
10 / 10 / 1
Регистрация: 16.11.2012
Сообщений: 320
13.06.2013, 13:50  [ТС] 5
Olivеr, Спасибо Вам огромнейшее! Можно Вам еще 1 вопрос задать?

Добавлено через 1 минуту
Olivеr, почему Вы около подключения библиотек не пишите
C++
1
using namespace std;
А пользуетесь таким методом
C++
1
std::
?
Правда интересно
0
415 / 411 / 95
Регистрация: 06.10.2011
Сообщений: 832
13.06.2013, 13:56 6
Если указать
C++
1
using namespace std;
, то компилятор будет искать все функции в этом пространстве имен. Иногда это очень неудобно и приводит к ошибкам. Особенно когда разрабатывается/используется класс, возникают конфликты имен и тп. В маленьких программах можно делать как угодно. В крупных проектах обычно указывают пространство. А в хедерах указывать пространство - очень плохой стиль потому, что вместе с ним подключается всё, что подключаем он сам.
2
10 / 10 / 1
Регистрация: 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
0
415 / 411 / 95
Регистрация: 06.10.2011
Сообщений: 832
14.06.2013, 12:27 8
Работает. http://ideone.com/kLSlfv
Включите режим С++11 или исправьте списки инициализации {...} на make_pair и добавьте хедер
Я с телефона поэтому не помогу
0
10 / 10 / 1
Регистрация: 16.11.2012
Сообщений: 320
14.06.2013, 19:57  [ТС] 9
Olivеr, что такое С++11?
0
415 / 411 / 95
Регистрация: 06.10.2011
Сообщений: 832
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;
}
0
10 / 10 / 1
Регистрация: 16.11.2012
Сообщений: 320
16.06.2013, 17:35  [ТС] 11
Olivеr, она у меня работает без подключения библиотеки
C++
1
#include "StdAfx.h"
, это нормально?

Добавлено через 7 минут
Olivеr, но работает корректно, правильно
0
415 / 411 / 95
Регистрация: 06.10.2011
Сообщений: 832
16.06.2013, 18:04 12
Toda, я не пользуюсь визуал поэтому у меня она не подключена
0
Эксперт С++
4267 / 2241 / 203
Регистрация: 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;
}
0
10 / 10 / 1
Регистрация: 16.11.2012
Сообщений: 320
17.06.2013, 16:32  [ТС] 14
Olivеr, а в какой среде Вы пишите?
0
Olivеr
17.06.2013, 17:49
  #15

Не по теме:

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

0
10 / 10 / 1
Регистрация: 16.11.2012
Сообщений: 320
19.06.2013, 00:35  [ТС] 16
Olivеr, Вы можете блок-схему сделать к этой программе, пожалуйста?
0
19.06.2013, 00:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.06.2013, 00:35
Помогаю со студенческими работами здесь

В заданном тексте найти самую длинную симметричную последовательность символов
в заданном тексте найти самую длинную симметричную последовательность символов

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

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

Определить самую длинную последовательность цифр в тексте
С помощью текстового редактора создать файл, содержащий текст, длина которого не превышает 1000...


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

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