0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 52
1

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

29.11.2013, 10:37. Показов 2290. Ответов 27
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здраствуйте, помогите написать код к такой задаче:
Дана строка символов S.
а) Подсчитать наибольшее количество идущих подряд пробелов.
б) Выяснить, верно ли, что в строке S имеются пять идущих подряд букв е.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.11.2013, 10:37
Ответы с готовыми решениями:

Подсчитать наибольшее количество идущих подряд пробелов
Даны натуральное число n, символы S1, .... Sn . а) Подсчитать наибольшее количество идущих...

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

Подсчитать наибольшее количество идущих подряд пробелов
#include "stdafx.h" #include "iostream" #include "iomanip" int main() { setlocale...

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

27
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
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;
}
0
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 52
29.11.2013, 10:51  [ТС] 3
mibin, єм а точно правильынй код, оно выводит сразу
E = 5 1
Probel = 4
0
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
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;
}
0
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
29.11.2013, 10:58 5
Цитата Сообщение от ivan-frost Посмотреть сообщение
mibin, єм а точно правильынй код, оно выводит сразу
E = 5 1
Probel = 4
Точно правильный
Только скопируй заного, я там после первой вставки сделал 1 изменение, опечатался в if два подряд = должны быть.

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

Не по теме:

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

0
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 52
29.11.2013, 10:59  [ТС] 8
mibin, так нужно самому ввести текст и чтобы оно подсчитало как это сделать
0
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
29.11.2013, 11:00 9
Цитата Сообщение от gray_fox Посмотреть сообщение
До, без регулярок здесь ну никак не обойдёшься...)
Ну мне регулярки больше нравятся, я щас любую обработку или поиск по тексту делаю с регулярками. А зачем что нить выдумывать?
0
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
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;
}
0
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
29.11.2013, 11:03 11
gray_fox, А да ну можно б было find использовать.
0
gray_fox
29.11.2013, 11:04
  #12

Не по теме:

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

0
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
29.11.2013, 11:04 13
Цитата Сообщение от ninja2 Посмотреть сообщение
Ну мне регулярки больше нравятся, я щас любую обработку или поиск по тексту делаю с регулярками. А зачем что нить выдумывать?
Они тяжелые на выполнение, считается, что на выполнение регулярного выражения требуется больше времени чем нежели циклами обработать.
0
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 52
29.11.2013, 11:05  [ТС] 14
mibin, не работает оно пишет все равно пробел 0 и е 5 0
0
979 / 196 / 33
Регистрация: 26.09.2012
Сообщений: 2,041
29.11.2013, 11:09 15
Цитата Сообщение от mibin Посмотреть сообщение
Они тяжелые на выполнение, считается, что на выполнение регулярного выражения требуется больше времени чем нежели циклами обработать.
Зато мороки меньше и честно сказать С++ шустрый язык, нафиг нада это все циклами писать, когда можно строчку написать и не париться!

Добавлено через 2 минуты
В данной задаче да можно циклами, но есть когда нужно выполнить поиск, таких выражений с большим количеством условий, тогда уже без РВ не обойтись, а эта задачка это мелочь. Там уже либо строчка РВ либо 200 - 1000к строк условий.
0
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
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%
0
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 52
29.11.2013, 11:14  [ТС] 17
mibin, builder 6
0
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
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
0
0 / 0 / 0
Регистрация: 17.10.2013
Сообщений: 52
29.11.2013, 18:56  [ТС] 19
mibin, так когда запускаешь там текст уже введен
0
141 / 84 / 24
Регистрация: 21.10.2009
Сообщений: 429
29.11.2013, 20:03 20
Удали строку где она заполняется и раскомментарь cin.
Введи строку и нажми enter
0
29.11.2013, 20:03
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2013, 20:03
Помогаю со студенческими работами здесь

Подсчитать наибольшее количество подряд идущих пробелов в тексте
С помощью текстового редактора БЛОКНОТ создать файл, содержащий текст, длина которого не...

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

В строке подсчитать наибольшее количество букв идущих подряд
Дана строка символов. Подсчитать наибольшее количество подряд идущих букв. Букву для подсчета...

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


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

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

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