С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Найти место вхождения в строку самой длинной последовательности пробелов и определить ее длину - C++

19.07.2016, 21:13. Просмотров 169. Ответов 3
Метки нет (Все метки)

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

C++ (Qt)
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
    void Find_prob()
    {
 
        int check = Word.find(" ");
        if (check == -1) cout << "probelov net";
        else
        {
            string bukva;
            int i = 0, c = 0, max = 0;
            int *P = new int;
            int len_str = Word.length();
 
            for (int i = 0; i < len_str; i++)
            {
                bukva = Word.substr(i, 1);
                if (bukva == " ")
                {
                    if (P[c] < 0) P[c] = 0;
                    P[c]++;
                }
                else c++;
            }
            
            for (int i = 0; i < c; i++)
            {
                if (P[i] > P[i + 1])
                    max = i;
            }
            
            cout << "kol-vo = " << P[max] << endl <<  "mesto = " << max;
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.07.2016, 21:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти место вхождения в строку самой длинной последовательности пробелов и определить ее длину (C++):

Найти длину самой длинной последовательности подряд идущих нулевых элементов массива - C++
Задан числовой массив A(n). Найти длину самой длинной последовательности подряд идущих элементов массива, равных нулю.

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

Определить длину самой длинной подстроки из подряд стоящих букв «е» - C++
Прошу проверить программу на правильность. Условие: Дана символьная строка. Определить длину самой длинной подстроки из подряд стоящих...

Определить длину самой длинной цепочки единиц в переменной unsigned long a; - C++
Помогите составить алгоритм нахождения этой длины

Определить длину самой длинной цепочки единиц в переменной unsigned long a - C++
#include &lt;iostream&gt; using namespace std; int main() { unsigned long a = 123123; int len = 0, tmp = 0; while...

Найти длину самой длинной возрастающей подпоследовательности в массиве - C++
Вводится массив. Найти в нем длину самой длинной возрастающей подпоследовательности.

3
Eaniconer
1 / 1 / 1
Регистрация: 19.07.2016
Сообщений: 6
20.07.2016, 08:08 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
Kind of ...

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
#include <iostream>
#include <stdio.h>
#include <string>
 
int main() {
    
    std::string str;
    std::cout << "Enter sentence: ";
    std::getline(std::cin, str);
 
    // Переменные в которых будем хранить ответ
    int idx = -1;
    int len = 0;
 
    // Дополнительные переменные
    int cur_idx, cur_len = 0;
 
    // Обход строки
    for (int i = 0; i < str.length(); i++) {
        
        // текущий символ пробел
        if (' ' == str[i]) 
        {
            if (0 == cur_len) cur_idx = i;
            cur_len++;
        }
        
        // текущий символ не пробел
        // или текущий символ пробел и он последний в строке
        if (' ' != str[i] || (' ' == str[i] && i == str.length() - 1)) {
            if (cur_len > len) {
                idx = cur_idx, len = cur_len;
            }
            cur_len = 0;
        }
    
    }
 
    // Вывод результата
    std::cout << "Index: " << idx << ", Length: " << len << std::endl;
 
    
 
}
0
xcuube
1 / 1 / 0
Регистрация: 19.07.2016
Сообщений: 12
20.07.2016, 10:42  [ТС] #3
спасибо!
0
Ferrari F1
580 / 518 / 101
Регистрация: 27.01.2015
Сообщений: 3,025
Записей в блоге: 1
Завершенные тесты: 1
20.07.2016, 11:30 #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
36
#include <iostream>
#include <string>
using namespace std;
 
int main()
{
    string str(" 1   1  1     ");
    //getline(cin, str);
 
    decltype(str.size()) pos;
    if ((pos = str.find_first_of(' ')) != string::npos)
    {
        auto count(0u), cur(0u), index(0u);
 
        while (pos != string::npos)
        {
            while (str[pos] == ' ' && pos != str.size())
            {
                ++cur, ++pos;
            }
 
            if (cur > count)
                count = cur, index = pos - cur;
 
            cur = 0;
 
            pos = str.find_first_of(' ', pos);
        }
 
        cout << index << ' ' << count << endl;
    }
    else
        cout << "No spaces" << endl;
 
    system("pause");
}
0
20.07.2016, 11:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.07.2016, 11:30
Привет! Вот еще темы с ответами:

Нужно найти длину самой длинной подпоследовательности, в которой равное количество 0 и 1. - C++
Здравствуйте. Задана последовательность из 0 и 1. Нужно найти длину самой длинной подпоследовательности, в которой равное количество 0 и...

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

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

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


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

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

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