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

Подсчитать количество слов в строке с двумя буквами «nn», стоящими подряд

27.06.2017, 00:13. Показов 1359. Ответов 9
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подсчитать количество слов в строке с двумя буквами «nn», стоящими подряд. Исходная строка вводится с клавиатуры.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.06.2017, 00:13
Ответы с готовыми решениями:

Подсчитать количество слов в строке с двумя буквами «н», стоящими подряд
Помогите пожалуйста решить задачу: Подсчитать количество слов в строке с двумя буквами «н»,...

Подсчитать количество слов в строке с двумя буквами «н», стоящими подряд
Подсчитать количество слов в строке с двумя буквами «н», стоящими подряд. Что в ней не так?...

Найти количество слов с двумя буквами оо
Дан текст, состоящий из слов: между словами ПРОИЗВОЛЬНОЕ число пробелов, после последнего слова...

Строки. Подсчитать количество слов с тремя буквами
написать программу,которая будет считать сколько слов с тремя буквами. Добавлено через 1 минуту...

9
838 / 641 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
27.06.2017, 05:30 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
#include <iostream>
#include <cstring>
 
size_t count_words(const char* s){
    const char delim[] = " \t\n.,!?";
    const char* e;
    size_t i, j, n = 0;
 
    while(*s){
        i  = strspn(s, delim);
        s += i;
        if(!*s)
            break;
        j = strcspn(s, delim);
        e = s + j;
 
        for(s += 1; s < e; ++s){
            if((*(s - 1) == *s) && (*s == 'n')){
                ++n;
                break;
            }
        }
        s = e;
    }
    return n;
}
 
int main(void){
    char s[128];
    std::cout << "Enter: ";
    std::cin.getline(s, 127);
    std::cout << "count: " << count_words(s) << std::endl;
    std::cin.get();
    return 0;
}
0
278 / 186 / 75
Регистрация: 12.04.2017
Сообщений: 1,088
Записей в блоге: 2
27.06.2017, 07:20 3
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
#include <iostream>
#include <cctype>
 
int main()
{
    bool count = true;
    char  *line= "nn ennter your snnnnournnnce code. or n innsennnnrt templatnne or sample or nn your templatenn";
    int num = 0;
    while(*(line + 1))
    {
        if(*line == 'n' && *(line + 1)== 'n')
        {
            if(count)
            num++;
            count = false;
        }
        if(! isalnum(*line ))
        count = true;
        line++;
    }
    
    std::cout << num << std::endl;
    return 0;
}
0
Любитель чаепитий
3742 / 1798 / 566
Регистрация: 24.08.2014
Сообщений: 6,016
Записей в блоге: 1
27.06.2017, 07:52 4
 Комментарий администратора 
От GbaLog-:
Данный код не верен по причине того, что он считает кол-во удвоенных букв "n" во всей строке, а не кол-во слов с удвоенными буквами "n" в заданной пользователем строке.


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 <algorithm>
 
constexpr bool isNSymb(const char l, const char r)
{
    return l == 'n' && l == r;
}
 
template<typename ForwardIt, typename BinaryPredicate>
constexpr size_t adjacent_count(ForwardIt first, ForwardIt last, BinaryPredicate p)
{
    size_t res = 0;
    
    if (first == last)
        return res;
    
    ForwardIt next = std::adjacent_find(first, last, p);
    
    if (next == last)
        return res;
    
    while (next != last)
    {
        ++res;
        ++next;
        next = std::adjacent_find(next, last, p);
    }
    
        
    return res;
}
 
int main()
{
    std::string str{ "asdw123ad21nn3nnn" };
    
    std::cout << adjacent_count(str.cbegin(), str.cend(), &isNSymb);
}
0
278 / 186 / 75
Регистрация: 12.04.2017
Сообщений: 1,088
Записей в блоге: 2
27.06.2017, 08:19 5
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
 
int main() {
    std::string s = "nn.n....nn ynnonnunr codnne goennnns hnnnennnre nn";
    size_t pos = 0, num = 0;
    while( true)
    {
        if((pos = s.find("nn", pos)) == std::string::npos)
        break;
        num++;
        if((pos = s.find_first_of(" .,!/", pos)) == std::string::npos)
        break;
    }
    std::cout << num;
    return 0;
}
0
823 / 626 / 321
Регистрация: 24.02.2017
Сообщений: 2,209
27.06.2017, 10:12 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
#include <iostream>
 
using namespace std;
 
int main()
{
 
  int count_world=0;
  char *p,s[]=" asngh asnnkll df ghjnnnnkl hjnnj hnj gf ";
 
  p=s;
  while(*p!='\0')
     {
      if(*p=='n' && *(p+1)=='n' )
       {
         count_world++;
         while(*p!=32 )
         p++;
       }
       p++;
    }
 
    cout<<count_world;
  system(" pause >0");
 
    return 0;
}
0
278 / 186 / 75
Регистрация: 12.04.2017
Сообщений: 1,088
Записей в блоге: 2
27.06.2017, 10:21 7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <algorithm>
#include <string>
#include <sstream>
#include <cctype>
int main() 
{
    std::string s = "nn.n....nn ynnonnunr codnne goennnns hnnnennnre nn t";
    std::string sub;
    size_t num = 0;
    std::stringstream ss(s);
    std::replace_if (s.begin(), s.end(), ispunct, ' ');
    while( ss >> sub)
    {
        if(s.find("nn", pos) != std::string::npos)
        num++;
    }
    std::cout << num;
    return 0;
}
0
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
27.06.2017, 12:33 8
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <algorithm>
#include <string>
#include <sstream>
#include <iterator>
using namespace std;
int main() {
    const string s {"hi mann, ur nname is Nanno? No"};
    stringstream ss(s);
    cout<<count_if(istream_iterator<string>(ss),istream_iterator<string>(),[](const string &s) {
        return adjacent_find (s.begin(), s.end(),[](const char &a, const char &b) {
            return tolower(a)=='n' && tolower(b)=='n';
        })!=s.end();
    });
    return 0;
}
0
Форумчанин
Эксперт CЭксперт С++
8215 / 5045 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
27.06.2017, 13:55 9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <algorithm>
#include <iostream>
#include <iterator>
#include <sstream>
#include <string>
 
int main()
{
    std::string str;
    std::getline(std::cin, str);
    std::istringstream ist(str);
    std::cout << std::count_if(std::istream_iterator<std::string>(ist), std::istream_iterator<std::string>(),
        [](const auto &s) { return s.find("nn") != std::string::npos; }) << std::endl;
}
0
93 / 69 / 22
Регистрация: 17.10.2011
Сообщений: 235
27.06.2017, 14:25 10
C++
1
2
3
4
5
6
7
8
    string text="dafnn df sfdf  nnfd ndndndn"
    regex reg("[a-zA-Z]*nn[a-zA-Z]*");
    smatch sm;
    int count=0;
    while(regex_search(text,sm,reg)){
        count++;
        text=sm.suffix();
    }
0
27.06.2017, 14:25
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.06.2017, 14:25
Помогаю со студенческими работами здесь

Конечные автоматы: подсчитать количество слов строчными буквами
Добрый день ,нужен самый простой код для этой задачи и главное с пояснениями по строчкам . Очень...

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

Дан текст, в котором слова разделены одним пробелом. а) Подсчитать количество слов в данной строке. б) Подсчитать количество букв а в последнем слове
Дан текст, в котором слова разделены одним пробелом. а) Подсчитать количество слов в данной строке....

Подсчитать количество слов в данной строке, подсчитать количество букв а в последнем слове
Дан текст. а) Подсчитать количество слов в данной строке. б) Подсчитать количество букв а в...

В заданной строке определить количество слов (в строке может содержаться несколько пробелов подряд).
В заданной строке определить количество слов (в строке может содержаться несколько пробелов подряд).

Подсчитать в строке количество символов, которые не являются ни цифрами, ни буквами
Ребят помогите плиз сделать в визио 2008 (пустой фаил, среда С++) задача звучит так: нужно...


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

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