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

Подсчитать наибольшее количество идущих подряд пробелов в строке - C++

Восстановить пароль Регистрация
 
 
ivan-frost
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 52
29.11.2013, 10:37     Подсчитать наибольшее количество идущих подряд пробелов в строке #1
Здраствуйте, помогите написать код к такой задаче:
Дана строка символов S.
а) Подсчитать наибольшее количество идущих подряд пробелов.
б) Выяснить, верно ли, что в строке S имеются пять идущих подряд букв е.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.11.2013, 10:37     Подсчитать наибольшее количество идущих подряд пробелов в строке
Посмотрите здесь:

C++ Подсчитать наибольшее количество идущих подряд пробелов
C++ Подсчитать наибольшее количество идущих подряд пробелов
Подсчитать наибольшее количество подряд идущих пробелов в тексте C++
C++ Подсчитать наибольшее количество идущих подряд пробелов
C++ В строке посчитать наибольшее количество идущих подряд пробелов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
mibin
49 / 49 / 4
Регистрация: 21.10.2009
Сообщений: 272
29.11.2013, 10:47     Подсчитать наибольшее количество идущих подряд пробелов в строке #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
34
35
36
37
38
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
   string str = "hfhfh bdfhb eeee e ee e    ee e e";
   
   int prob;
   int maxprob;
   int e;
   bool be;
   
   prob = 0;
   e = 0;
   maxprob = 0;
   be = false;
   
   for (int i = 0; i < str.length() ; i++) {
       
       if (str[i] == ' ') prob++;
       else prob = 0;
       
       if ( prob > maxprob ) maxprob = prob;
       
       if (str[i] == 'e') e++;
       else e = 0;
       
       if ( e == 5 ) be = true;
       
   }
   
   cout << "E = 5  " << be << endl; 
   cout << "Probel = " << maxprob << endl; 
   
   return 0;
}
ivan-frost
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 52
29.11.2013, 10:51  [ТС]     Подсчитать наибольшее количество идущих подряд пробелов в строке #3
mibin, єм а точно правильынй код, оно выводит сразу
E = 5 1
Probel = 4
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
29.11.2013, 10:54     Подсчитать наибольшее количество идущих подряд пробелов в строке #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
#include <iostream>
#include <regex>
#include <string>
using namespace::std;
 
int main()
{ 
    string s="abc def dfseeeeedfas  gfi";
    cout <<"s= "<<s<<endl;
    int max(0);
    smatch sm;
    //а) Подсчитать наибольшее количество идущих подряд пробелов.
    string s1=s;
    while(regex_search(s1,sm,regex(" +")))
    {
        if(max<sm[0].str().length()) max=sm[0].str().length();
        s1=sm.suffix().str();
    }
 
    cout <<"max_prob= "<<max<<endl;
 
    //б) Выяснить, верно ли, что в строке S имеются пять идущих подряд букв е
    if(regex_match(s,regex(".*eeeee.*")))
        cout <<"est6 sovpadenie \"eeeee\""<<endl;
    else
        cout <<"net \"eeeee\""<<endl;
 
    return 0;
}
mibin
49 / 49 / 4
Регистрация: 21.10.2009
Сообщений: 272
29.11.2013, 10:58     Подсчитать наибольшее количество идущих подряд пробелов в строке #5
Цитата Сообщение от ivan-frost Посмотреть сообщение
mibin, єм а точно правильынй код, оно выводит сразу
E = 5 1
Probel = 4
Точно правильный
Только скопируй заного, я там после первой вставки сделал 1 изменение, опечатался в if два подряд = должны быть.

после E = 5 будет 1 или 0 что означает 1 = 5 e подряд есть 0 нет.
ivan-frost
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 52
29.11.2013, 10:58  [ТС]     Подсчитать наибольшее количество идущих подряд пробелов в строке #6
ninja2, ваш код вообще не запускается
gray_fox
29.11.2013, 10:58
  #7

Не по теме:

Цитата Сообщение от ninja2 Посмотреть сообщение
//б) Выяснить, верно ли, что в строке S имеются пять идущих подряд букв е
До, без регулярок здесь ну никак не обойдёшься...)

ivan-frost
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 52
29.11.2013, 10:59  [ТС]     Подсчитать наибольшее количество идущих подряд пробелов в строке #8
mibin, так нужно самому ввести текст и чтобы оно подсчитало как это сделать
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
29.11.2013, 11:00     Подсчитать наибольшее количество идущих подряд пробелов в строке #9
Цитата Сообщение от gray_fox Посмотреть сообщение
До, без регулярок здесь ну никак не обойдёшься...)
Ну мне регулярки больше нравятся, я щас любую обработку или поиск по тексту делаю с регулярками. А зачем что нить выдумывать?
mibin
49 / 49 / 4
Регистрация: 21.10.2009
Сообщений: 272
29.11.2013, 11:02     Подсчитать наибольшее количество идущих подряд пробелов в строке #10
Цитата Сообщение от ivan-frost Посмотреть сообщение
mibin, так нужно самому ввести текст и чтобы оно подсчитало как это сделать
Тогда так попробуй

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
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
   string str;
   
   cin >> str;
   
   int prob;
   int maxprob;
   int e;
   bool be;
   
   prob = 0;
   e = 0;
   maxprob = 0;
   be = false;
   
   for (int i = 0; i < str.length() ; i++) {
       
       if (str[i] == ' ') prob++;
       else prob = 0;
       
       if ( prob > maxprob ) maxprob = prob;
       
       if (str[i] == 'e') e++;
       else e = 0;
       
       if ( e == 5 ) be = true;
       
   }
   
   cout << "E = 5  " << be << endl; 
   cout << "Probel = " << maxprob << endl; 
   
   return 0;
}
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
29.11.2013, 11:03     Подсчитать наибольшее количество идущих подряд пробелов в строке #11
gray_fox, А да ну можно б было find использовать.
gray_fox
29.11.2013, 11:04
  #12

Не по теме:

Цитата Сообщение от ninja2 Посмотреть сообщение
Ну мне регулярки больше нравятся, я щас любую обработку или поиск по тексту делаю с регулярками.
Просто есть вещи попроще (и пошустрее, кстати, если это интересно, конечно), std::string::find например.

mibin
49 / 49 / 4
Регистрация: 21.10.2009
Сообщений: 272
29.11.2013, 11:04     Подсчитать наибольшее количество идущих подряд пробелов в строке #13
Цитата Сообщение от ninja2 Посмотреть сообщение
Ну мне регулярки больше нравятся, я щас любую обработку или поиск по тексту делаю с регулярками. А зачем что нить выдумывать?
Они тяжелые на выполнение, считается, что на выполнение регулярного выражения требуется больше времени чем нежели циклами обработать.
ivan-frost
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 52
29.11.2013, 11:05  [ТС]     Подсчитать наибольшее количество идущих подряд пробелов в строке #14
mibin, не работает оно пишет все равно пробел 0 и е 5 0
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
29.11.2013, 11:09     Подсчитать наибольшее количество идущих подряд пробелов в строке #15
Цитата Сообщение от mibin Посмотреть сообщение
Они тяжелые на выполнение, считается, что на выполнение регулярного выражения требуется больше времени чем нежели циклами обработать.
Зато мороки меньше и честно сказать С++ шустрый язык, нафиг нада это все циклами писать, когда можно строчку написать и не париться!

Добавлено через 2 минуты
В данной задаче да можно циклами, но есть когда нужно выполнить поиск, таких выражений с большим количеством условий, тогда уже без РВ не обойтись, а эта задачка это мелочь. Там уже либо строчка РВ либо 200 - 1000к строк условий.
mibin
49 / 49 / 4
Регистрация: 21.10.2009
Сообщений: 272
29.11.2013, 11:13     Подсчитать наибольшее количество идущих подряд пробелов в строке #16
Цитата Сообщение от ivan-frost Посмотреть сообщение
mibin, не работает оно пишет все равно пробел 0 и е 5 0
На чем проверяешь? Какая среда?

Добавлено через 2 минуты
Я пишу в OnLIne компиляторе сейчас и проверить cin не могу...могу сказать что вот в таком виде:
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
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
   string str;
   
   cout << "Write text:" << endl;
   //cin >> str;
   str = "2342323 cc32ck  345 3c4534c 534c5 eeeee";
   cout << str << endl;
   
   int prob;
   int maxprob;
   int e;
   bool be;
   
   prob = 0;
   e = 0;
   maxprob = 0;
   be = false;
   
   for (int i = 0; i < str.length() ; i++) {
       
       if (str[i] == ' ') prob++;
       else prob = 0;
       
       if ( prob > maxprob ) maxprob = prob;
       
       if (str[i] == 'e') e++;
       else e = 0;
       
       if ( e == 5 ) be = true;
       
   }
   
   cout << "E = 5  " << be << endl; 
   cout << "Probel = " << maxprob << endl; 
   
   return 0;
}

все работает 100%
ivan-frost
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 52
29.11.2013, 11:14  [ТС]     Подсчитать наибольшее количество идущих подряд пробелов в строке #17
mibin, builder 6
mibin
49 / 49 / 4
Регистрация: 21.10.2009
Сообщений: 272
29.11.2013, 11:15     Подсчитать наибольшее количество идущих подряд пробелов в строке #18
Цитата Сообщение от ninja2 Посмотреть сообщение
В данной задаче да можно циклами, но есть когда нужно выполнить поиск, таких выражений с большим количеством условий, тогда уже без РВ не обойтись, а эта задачка это мелочь. Там уже либо строчка РВ либо 200 - 1000к строк условий.
Согласен, но сам я использую regexp в крайнем случае, когда веток условий поиска много и только в БД.

Добавлено через 31 секунду
Цитата Сообщение от ivan-frost Посмотреть сообщение
mibin, builder 6
Странно...какую строку вводишь?

Введи подряд много символов, например: lewd wer w werwe rw w we rw w w eeee ee eeeee
и нажми Enter
ivan-frost
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 52
29.11.2013, 18:56  [ТС]     Подсчитать наибольшее количество идущих подряд пробелов в строке #19
mibin, так когда запускаешь там текст уже введен
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.11.2013, 20:03     Подсчитать наибольшее количество идущих подряд пробелов в строке
Еще ссылки по теме:

В строке подсчитать наибольшее количество букв идущих подряд C++
Вывести наибольшее количество пробелов, идущих подряд C++
Подсчитать наибольшее количество идущих подряд пробелов C++

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

Или воспользуйтесь поиском по форуму:
mibin
49 / 49 / 4
Регистрация: 21.10.2009
Сообщений: 272
29.11.2013, 20:03     Подсчитать наибольшее количество идущих подряд пробелов в строке #20
Удали строку где она заполняется и раскомментарь cin.
Введи строку и нажми enter
Yandex
Объявления
29.11.2013, 20:03     Подсчитать наибольшее количество идущих подряд пробелов в строке
Ответ Создать тему
Опции темы

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