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

Дана непустая последовательность из строчных латинских букв

09.03.2014, 20:51. Показов 5363. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана непустая последовательность из строчных латинских букв, между соседними словами - запятая, за последним словом точка. Напечатать букву, которая входит в наибольшее количество слов этой последовательности.
Помогите с решением этой задачи. Как я понял вот так можно разделить строку на слова. Но как дальше делать не пойму.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
using namespace std;
int main()
{
string s, d = ",.";//разделители слов в строке
cout « "Vvedite Stroky: "; //запрос на введение строки
cin » s;//считывание строки
vector<string> v;
int b, e = 0;
while ((b = s.find_first_not_of(d, e)) != s.npos)
{
e = s.find_first_of(d, b);
v.push_back(s.substr(b, e - b));
b = e;
}
cout « "otdelno:\n";//Вывод слов в отдельных строках
for (int c = 0; c < v.size(); ++c)
cout « v[c] « endl;
 
system("PAUSE");
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.03.2014, 20:51
Ответы с готовыми решениями:

Дана строка Подсчитать общие количество в ней строчных латинских букв
спасите Дана строка Подсчитать общие количество в ней строчных латинских букв 2 Дана...

Данная последовательность, содержащая от 1 до 27 слов, в каждом из которых от 1 до 5 строчных латинских букв
Данная последовательность, содержащая от 1 до 27 слов, в каждом из которых от 1 до 5 строчных...

Дана строка. Подсчитать общее количество содержащихся в ней строчных латинских и русских букв
Дана строка. Подсчитать общее количество содержащихся в ней строчных латинских и русских букв.

Дана строка. Подсчитать общее колличество прописных и строчных латинских и русских букв и вывести на консоль количество
Нужно ввести с консоли строку символов (длиной до 80 символов), и вывести на консоль количество...

3
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,644
Записей в блоге: 13
09.03.2014, 21:07 2
Лучший ответ Сообщение было отмечено corpdelta как решение

Решение

Делить на слова не обязательно. Вот:

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
#include <iostream.h>
#include <string.h>
 
int main(int argc, char* argv[])
{
    int C1[256],C2[256];
    int i,j,l,k,m;
    char *S="ffag,ddaf,asdf,qwefrty";
    char c;
 
    l=strlen(S);
 
    for (i=0; i<256; i++) {C1[i]=0;C2[i]=0;}
 
    for (i=0; i<l; i++)
    { 
        if (S[i]==',')
            for (j=0; j<256; j++) {C1[j]=C1[j]+C2[j]; C2[j]=0;}
        else
        {
            k=S[i];
            C2[k]=C2[k] | 1;
        }
    }
 
    for (j=0; j<256; j++) C1[j]=C1[j]+C2[j];
 
    m=C1[0];
    i=0;
    for (j=1; j<256; j++) 
        if (C1[j] > m) 
        {
            m=C1[j];
            i=j;
        }
    c=i;
    cout << c << endl; 
    return 0;
}
1
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
09.03.2014, 22:50 3
Catstail, ещё бы имена нормальные переменным дать.
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
#include <algorithm>
#include <iostream>
#include <cstring>
#include <map>
 
int main()
{
    const std::string s {"ffag,ddaf,asdf,qwefrty."};
    
    std::map<char,bool> hasChar;
    std::map<char,int> charCount;
    
    for( auto c : s )
    {
        if( c == ',' || c == '.' )
        {
            for( auto& p : hasChar )
            {
                ++charCount[p.first];
            }
            hasChar.clear();
        }
        else
        {
            hasChar[c] = true;
        }
    }
 
    auto it = std::max_element( charCount.begin(), charCount.end(), [](const std::pair<char,int>& l, const std::pair<char,int>& r){ return l.second < r.second; });
    std::cout << it->first << std::endl; 
    return 0;
}
http://ideone.com/fTKW23
1
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,644
Записей в блоге: 13
09.03.2014, 23:50 4
Лучший ответ Сообщение было отмечено corpdelta как решение

Решение

Так у меня переменных почти нет... Строка, два массива и рабочие. Мне кажется, мой код прозрачнее. И длиннее совсем не намного
1
09.03.2014, 23:50
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.03.2014, 23:50
Помогаю со студенческими работами здесь

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

Дана непустая последовательность слов из строчных латинских букв
Напечатать в алфавитном порядке: 1) Все гласные буквы которые входят в каждое слово. 2) Все...

Дана непустая последовательность слов из строчных (малых) латинских букв
Как мне проще доработать программу, чтобы выполнялся пункт б и пункт с? Пункт а реализован. Все...

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

Дана непустая последовательность слов из строчных русских букв...
Доброго времени суток Вам!!!Столкнулся с проблемой решения данной задачи. Дана непустая...

Дана непустая последовательность слов из строчных русских букв
Всем доюрый вечер!!!))) Дали задачу на решение множеств, у меня есть образец примерной задачи, тока...


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

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