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

Посчитать количество букв и найти самое длинное слово - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.80
Raxxell
10 / 10 / 1
Регистрация: 27.07.2010
Сообщений: 107
02.06.2011, 17:17     Посчитать количество букв и найти самое длинное слово #1
Прошу помощи. Никак не могу написать прогу по следующим задачам.

1. Написать программу, которая будет подсчитывать количество согласных букв в строке, введенной с клавиатуры.
2. Написать программу, которая будет находить самое длинное слово в строке, введенной с клавиатуры, и подсчитывать, сколько раз оно встретилось в тексте.

Если у кого есть что-нить похожее, выложите, я попробую сам переделать.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2011, 17:17     Посчитать количество букв и найти самое длинное слово
Посмотрите здесь:

C++ Количество букв в слове, количество предложений, самое длинное слово в предложении
C++ Строки. В заданном тексте найти самое длинное слово и самое длинное предложение.
C++ Найти самое короткое и самое длинное слово в строке
C++ Определить количество слов и найти самое длинное слово
Вывести имя и количество букв в фамилии. Вывести самое длинное слово C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
sandye51
программист С++
 Аватар для sandye51
677 / 579 / 39
Регистрация: 19.12.2010
Сообщений: 2,016
02.06.2011, 17:53     Посчитать количество букв и найти самое длинное слово #2
1.
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
#include <iostream>
#include <algorithm>
#include <stdlib.h>
#include <locale>
#include <iterator>
#include <list>
#include <string>
#include <conio.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    cout << "Введите строку (для завершения ввода нажмите CTRL + Z)" << endl;
    list<string> v;
    copy(istream_iterator<string>(cin), istream_iterator<string>(), back_inserter(v));
    size_t i = 0;
    for_each(v.begin(), v.end(),
        [&i](const string& buffer)->void
        {
            size_t ii = 0;
            string alf = string("bcdfghjklmnpqrstvxz");
            for_each(buffer.begin(), buffer.end(), 
                [&ii, &alf](char c)->void
            {
                find(alf.begin(), alf.end(), c)  == alf.end() ? ii : ++ii;
            });
            i += ii;
    });
    cout << "Ответ: " << i << endl;
    _getch();
    return EXIT_SUCCESS;
}
Добавлено через 6 минут
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
#include <iostream>
#include <algorithm>
#include <stdlib.h>
#include <locale>
#include <iterator>
#include <list>
#include <string>
#include <conio.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "Russian");
    cout << "Введите строку (для завершения ввода нажмите CTRL + Z)" << endl;
    list<string> v;
    copy(istream_iterator<string>(cin), istream_iterator<string>(), back_inserter(v));
    string maxWord = *max_element(v.begin(), v.end(),
        [](const string& buffer1, const string& buffer2)->bool
        {
            return buffer1.length() < buffer2.length();
    });
    cout << "Самое длинное слово " << maxWord << endl;
    cout << "Колличество повторений самого длинного слова " << count(v.begin(), v.end(), maxWord) << endl;
    _getch();
    return EXIT_SUCCESS;
}
asics
Freelance
Эксперт C++
 Аватар для asics
2839 / 1776 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
02.06.2011, 18:19     Посчитать количество букв и найти самое длинное слово #3
Цитата Сообщение от Raxxell Посмотреть сообщение
1. Написать программу, которая будет подсчитывать количество согласных букв в строке, введенной с клавиатуры.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
#include <string>
#include <algorithm>
#include <cctype>
 
bool pred(char ch){
  static const std::string  &BUF("bcdfghjklmnpqrstvwxz");
  ch = tolower(ch);
  return BUF.find(ch) != std::string::npos;
}
 
int main(){
  std::string  s;
  getline(std::cin, s);
  std::cout << std::count_if(s.begin(), s.end(), pred);
  return 0;
}
Raxxell
10 / 10 / 1
Регистрация: 27.07.2010
Сообщений: 107
02.06.2011, 18:30  [ТС]     Посчитать количество букв и найти самое длинное слово #4
Уф, ребята, спасибо конечно, но это ведь С++ для новичков, некоторые функции я даже не знаю, и соответственно не смогу объяснить. А можно попроще как нить, или хотя бы коментов навставлять. Хотя лучше наверное попроще.
Yandex
Объявления
02.06.2011, 18:30     Посчитать количество букв и найти самое длинное слово
Ответ Создать тему
Опции темы

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