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

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

Восстановить пароль Регистрация
 
corpdelta
0 / 0 / 0
Регистрация: 09.03.2014
Сообщений: 15
09.03.2014, 20:51     Дана непустая последовательность из строчных латинских букв #1
Дана непустая последовательность из строчных латинских букв, между соседними словами - запятая, за последним словом точка. Напечатать букву, которая входит в наибольшее количество слов этой последовательности.
Помогите с решением этой задачи. Как я понял вот так можно разделить строку на слова. Но как дальше делать не пойму.
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");
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.03.2014, 20:51     Дана непустая последовательность из строчных латинских букв
Посмотрите здесь:

дана строка. подсчитать общее колличество содержащихся в ней строчных латинских и русских букв C++
Вывести слова, которые начинаются и оканчиваются одной и той же буквой C++
Дана строка Подсчитать общие количество в ней строчных латинских букв C++
C++ Напечатать в алфавитном порядке все звонкие буквы которые входят в каждое слово
C++ Дана строка. Подсчитать общее колличество прописных и строчных латинских и русских букв и вывести на консоль количество
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Catstail
Модератор
 Аватар для Catstail
21453 / 10238 / 1667
Регистрация: 12.02.2012
Сообщений: 17,114
09.03.2014, 21:07     Дана непустая последовательность из строчных латинских букв #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
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;
}
Tulosba
:)
Эксперт С++
4378 / 3221 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
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
Catstail
Модератор
 Аватар для Catstail
21453 / 10238 / 1667
Регистрация: 12.02.2012
Сообщений: 17,114
09.03.2014, 23:50     Дана непустая последовательность из строчных латинских букв #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Так у меня переменных почти нет... Строка, два массива и рабочие. Мне кажется, мой код прозрачнее. И длиннее совсем не намного
Yandex
Объявления
09.03.2014, 23:50     Дана непустая последовательность из строчных латинских букв
Ответ Создать тему
Опции темы

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