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

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

Войти
Регистрация
Восстановить пароль
 
Озабоченный
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 13
#1

Найти повторение в строке - C++

13.12.2010, 13:59. Просмотров 801. Ответов 12
Метки нет (Все метки)

Найти наиболее длинную последовательность символов в строке. к примеру const char* str="aabcedddddf". Указатель должен встать на d. Спасибо!

Добавлено через 52 минуты
Имеется ввиду наиболее длинную последовательность одинаковых символов в строке...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2010, 13:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти повторение в строке (C++):

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

Найти все цифры в строке. каждую цифру напечатать в отдельной строке - C++
Помогите пожалуйста

В каждой строке матрицы найти и вывести минимальный элемент и его номер в строке - C++
/*Дана матрица А. В каждой строке матрицы найти и вывести минимальный элемент и его номер в строке. Вывести полученную матрицу.*/ ...

Дан двумерный массив. найти количество элементов в каждой строке, меньших диагонального в этой строке - C++
1.Сформировать квадратную матрицу 000001 000020 000300 0n-10000 n00000 2.Дан двумерный массив. найти количество элементов в...

В прямоугольной матрице найти сумму элементов, принадлежащих первой строке, последней строке, первому столбцу и последнему столбцу. - C++
7.6.2. Помогите, пожалуйста, решить задачу в С++. В прямоугольной матрице найти сумму элементов, принадлежащих первой строке,...

Проверка на повторение - C++
i = 0; while(x != 0){ int j = 1; while(x != 0){ if(x == x){ cout << i << j; ...

12
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
13.12.2010, 14:27 #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
#include <iostream>
#include <ctime>
 
using namespace std;
 
int main()
{
    char str[256];
    int cnt=0,max=0;
    char ch;
    cout<<"Enter string: ";
    cin>>str;
    for(int i=0; i<strlen(str)-1; i++)
    {
        cnt=0;
        for(int j=i; j<strlen(str)-1; j++)
        {
            if(str[i]==str[j])
            {
                cnt++;
            }
        }
      if(max<cnt)
      {
          max=cnt;
          ch=str[i];
      }
    }
    cout<<"Max is "<<ch<<" - "<<max;
    cout<<endl;
    system("pause");
    return 0;
}
1
Озабоченный
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 13
13.12.2010, 14:32  [ТС] #3
СПАСИБО! FORZA MILAN!
0
asics
Freelance
Эксперт С++
2847 / 1782 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
13.12.2010, 14:37 #4
MILAN, Мб вместо #include <ctime> написать #include <cstring> ?
0
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
13.12.2010, 14:42 #5
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
#include <iostream>
 
using namespace std;
 
int main()
{
    char str[256];
    int cnt=0,max=0;
    char ch;
    cout<<"Enter string: ";
    cin>>str;
    for(int i=0; i<strlen(str)-1; i++)
    {
        cnt=0;
        for(int j=i; j<strlen(str)-1; j++)
        {
            if(str[i]==str[j])
            {
                cnt++;
            }
        }
      if(max<cnt)
      {
          max=cnt;
          ch=str[i];
      }
    }
    cout<<"Max is "<<ch<<" - "<<max;
    cout<<endl;
    system("pause");
    return 0;
}
Ну да, хотя ето не меняет ситуацию!!!
0
asics
Freelance
Эксперт С++
2847 / 1782 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
13.12.2010, 14:44 #6
Цитата Сообщение от MILAN Посмотреть сообщение
Ну да, хотя ето не меняет ситуацию!!!
Всмысле не меняет ?Если не будет этой библиотеки, то соответственно будет ошыбка.
0
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
13.12.2010, 14:47 #7
У меня VS 2008, все нормально. Не буду точно утверждать, но по мойму в VS она автоматически подключается, пускай кто то подправит!!!
0
Озабоченный
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 13
13.12.2010, 14:58  [ТС] #8
Кстати программа неправильно работает. при "abcdefghtcccddea" возвращает неправильно значение к примеру к тому же надо бы еще указатель поставить куда надо

Добавлено через 2 минуты
Внутренний цикл просто надо начать с i+1
0
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
13.12.2010, 15:04 #9
Озабоченный,
0
Миниатюры
Найти повторение в строке  
Озабоченный
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 13
13.12.2010, 15:09  [ТС] #10
Да, но там 3 символа, а не 4 не суть, как все-таки правильно тут указатель выставить?
0
asics
Freelance
Эксперт С++
2847 / 1782 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
13.12.2010, 15:17 #11
MILAN, Походу имелось введу - найбольшое количество подряд-идущих символов.
1
MILAN
885 / 779 / 86
Регистрация: 21.02.2009
Сообщений: 1,722
13.12.2010, 15:21 #12
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
#include <iostream>
 
using namespace std;
 
int main()
{
        char str[256];
        int cnt=0,max=0;
        char ch;
        cout<<"Enter string: ";
        cin>>str;
        for(int i=0; i<strlen(str)-1; i++)
        {
                cnt=0;
                for(int j=i; j<strlen(str); j++)
                {
                        if(*(str+i)==*(str+j))
                        {
                                cnt++;
                        }
                }
      if(max<cnt)
          {
                  max=cnt;
                  ch=*(str+i);
          }
        }
        cout<<"Max is "<<ch<<" - "<<max;
        cout<<endl;
        system("pause");
        return 0;
}
0
Озабоченный
0 / 0 / 0
Регистрация: 07.12.2010
Сообщений: 13
13.12.2010, 16:02  [ТС] #13
Да, прога работает правильно, только я никак не пойму как сместить указатель к первому вхождению максимальной последовательности...какое это смещение высчитать в коде? Спасибо!!

Добавлено через 25 минут
хотя нет...все-таки неправильно

Добавлено через 56 секунд
числа или символы должны идти подряд

Добавлено через 6 минут
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
#include <iostream>
#include <string>
#include <vector>
 
using namespace std;
 
const char* FindMaxPlateau (const char* str)
{
    unsigned cnt=0, max=0, size=strlen(str);
    char ch;
 
    vector<int> the_vector;
    //если строка пустая
    if (size<1)
    {
        return NULL;
    }
 
    //если строrа не пустая
    for(size_t i=0; i < size-1; ++i)
    {
        cnt=0;
        for(size_t j=i; j < size; ++j)
        {
            if(*(str+i) == *(str+j))
            {
                ++cnt;
            }
            else
            {
                break;
            }
        }
        if(max<cnt)
        {
            max=cnt;
            ch=*(str+i);
            str+=i;
        }
    }
 
    cout<<"Max is "<<ch<<" - "<< max;
    cout<<endl;
    return str;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.12.2010, 16:02
Привет! Вот еще темы с ответами:

Повторение программы (do while) - C++
Кто поможет на данном элементарном примере сделать повтор программы(do while), к примеру, чтобы программа требовала вводить 'а' (cin &gt;&gt; a)....

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

Повторение символа - C++
Как сделать так чтобы при вводе с клавииатуры некоторые симовлы разрешено было повторять определенное количество раз? Т.е. : &quot;I&quot;...

Повторение циклом while - C++
#include &lt;iostream&gt; #include &lt;string&gt; #include &lt;vector&gt; using namespace std; int main() { //инициализация int...


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

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

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