Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.59/34: Рейтинг темы: голосов - 34, средняя оценка - 4.59
Awessome
0 / 0 / 0
Регистрация: 17.09.2010
Сообщений: 14
1

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

17.09.2010, 13:50. Просмотров 6183. Ответов 29
Метки нет (Все метки)

С клавиатуры вводится текстовая строка на русском языке. Найдите количество гласных и согласных букв. Используйте фильтр для ввода только текстовых символов.
Помогите никак не могу сделать.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.09.2010, 13:50
Ответы с готовыми решениями:

Дана строка: предложение на русском языке. Подсчитать количество содержащихся гласных букв
Пример в паскале(рабочий) program st; var S:String; i,Num:integer; ...

Определить номера позиций гласных букв в данном тексте на русском языке
Помогите решить задачу в C++. Определить номера позиций гласных букв в данном...

Определите долю гласных букв в заданном тексте на русском (английском) языке
Здравствуйте.Помогите пожалуйста с заданием.Заранее спасибо.

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

Найти количество гласных и согласных букв
Помогите плиз!Надо найти кол-во гласных и согласных букв.Вот что-то понять не...

29
TheMachinist
244 / 176 / 47
Регистрация: 14.06.2010
Сообщений: 422
17.09.2010, 14:47 2
Организовываем ввод пользователем
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Rus");
 
    char str[100];
    gets(str);
        
        system("pause");
        return 0;
}
Потом можно создать парочку массивчиков с гласными и согласными , и сравнивать,и считать
0
ForEveR
В астрале
Эксперт С++
7995 / 4754 / 651
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
17.09.2010, 14:52 3
NikolaWhite, Ага. Шикарно считается русская строка. Код то пробовали на виндовсе допустим?
0
dihlofos
Бродяга
304 / 258 / 56
Регистрация: 27.08.2010
Сообщений: 553
17.09.2010, 15:05 4
Lavroff, в билдере и в студии работает с русской строкой, без setlocale(). В чём подвох?
0
ForEveR
В астрале
Эксперт С++
7995 / 4754 / 651
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
17.09.2010, 15:06 5
dihlofos, В студии даже? Странно. А что значит работает? Выводит впоряде русскую строку?
Ах да. Зачем использовать в С++ gets?

str 0x0012fefc "ЏаЁўҐв, ¬Ёа" char [100]

Содержание строки после ввода Привет, мир. Шикарно,м?)
0
dihlofos
Бродяга
304 / 258 / 56
Регистрация: 27.08.2010
Сообщений: 553
17.09.2010, 15:08 6
Ну например, такая штука:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
 
int main()
{
        char str[100];
    gets(str);
 
    puts(str);
 
    cout<<str[2];
    cout<<str[4];
    cout<<str[8];
 
    system("pause");
    return 0;
}
Для "Привет, мир!":

Привет, мир!
ием
0
M128K145
Эксперт JavaЭксперт С++
8326 / 3546 / 420
Регистрация: 03.07.2009
Сообщений: 10,708
17.09.2010, 15:08 7
Для чтения строки из кириллических символов используйте OemToChar, для вывода - CharToOem
1
Awessome
0 / 0 / 0
Регистрация: 17.09.2010
Сообщений: 14
17.09.2010, 15:10  [ТС] 8
Цитата Сообщение от NikolaWhite Посмотреть сообщение
Организовываем ввод пользователем
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
using namespace std;
 
int main()
{
    setlocale(LC_ALL,"Rus");
 
    char str[100];
    gets(str);
        
        system("pause");
        return 0;
}
Потом можно создать парочку массивчиков с гласными и согласными , и сравнивать,и считать
Это и так есть, я не знаю как прописать чтоб он сравнивал и ставил ограничение.
0
dihlofos
Бродяга
304 / 258 / 56
Регистрация: 27.08.2010
Сообщений: 553
17.09.2010, 15:45 9
Awessome, работает, но только для латиницы С русским разберётесь?
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 gl=0, sg=0, i, j;
    char gls[]="aeiouy";
    char sog[]="bcdfghjklmnpqrstvwxz";
    char str[100];
 
    cin>>str;
 
    for(i=0; i<strlen(str); i++)
        for(j=0; j<strlen(gls); j++)
            if(str[i]==gls[j])
                gl++;
 
    for(i=0; i<strlen(str); i++)
        for(j=0; j<strlen(sog); j++)
            if(str[i]==sog[j])
                sg++;
 
    cout<<gl<<" "<<sg<<endl;
    system("pause");
    return 0;
}
1
Awessome
0 / 0 / 0
Регистрация: 17.09.2010
Сообщений: 14
17.09.2010, 15:54  [ТС] 10
dihlofos,
Да, спасибо большое.
0
dihlofos
17.09.2010, 15:54
  #11

Не по теме:

Что, прямо с русским сделали?

0
matroskin
4 / 4 / 0
Регистрация: 15.09.2010
Сообщений: 5
17.09.2010, 17:27 12
Не знаю, надо ли еще, но вот еще вариант. Ищет количество гласных и согласных и фильтрация ввода только по тексту. Правда тоже на латинице, а то лень было с русским разбираться =)
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
#include <iostream>
using namespace std;
 
int main()
{   int CountSogl;
    int ind = 0;
    int index = 0;
    char ch[999];
    bool flag = false;
    cout<<"Vvedite stroku:\n\n";
    while(cin.getline(ch,999))
    {
        for (int i = 0;i<(sizeof(ch)/sizeof(ch[i]));i++)
        {   
            if((ch[i]>='a' && ch[i]<='z') || (ch[i]=='\0') || (ch[i]>='A' && ch[i]<='B' ))
            {
                if(ch[i] == 'e'|| ch[i]=='u' || ch[i] == 'i' || ch[i] == 'o' || ch[i]=='a')
                {
                index++;
                }
                ind++;
                if(ch[i] != '\0')
                    continue;
                CountSogl = --ind-index;
                cout<<"Kol-vo glasnih: "<<index<<"\nKol-vo soglasnih: "<<CountSogl;
                ind = index = 0;
                cout<<"\n\nVvedite stroku:\n\n";
                break;
            }
            else
            {   
                cout<<"Warning, dlia prodoljenia nazmite \"Enter\" i zanovo vvedite stroku!!!\n\n";
                cin.clear();
                while(cin.get()!='\n')
                    continue;
                break;
            }
        }
    }
    return 0;
}
2
TheMachinist
244 / 176 / 47
Регистрация: 14.06.2010
Сообщений: 422
17.09.2010, 18:38 13
Для чтения строки из кириллических символов используйте OemToChar, для вывода - CharToOem
Интересно как этим пользоваться?
0
ForEveR
В астрале
Эксперт С++
7995 / 4754 / 651
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
17.09.2010, 18:41 14
NikolaWhite, Он из библиотеки windows.h
1
TheMachinist
244 / 176 / 47
Регистрация: 14.06.2010
Сообщений: 422
17.09.2010, 19:06 15
Он из библиотеки windows.h
Что-то не найти мне windows.h на cplusplus.com.
Или есть другой ресурс?
0
ForEveR
В астрале
Эксперт С++
7995 / 4754 / 651
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
17.09.2010, 19:08 16
NikolaWhite, Это API системы Windows. WinAPI. Фак по нему есть на форуме.
1
TheMachinist
244 / 176 / 47
Регистрация: 14.06.2010
Сообщений: 422
17.09.2010, 22:42 17
Я тут решил использовать STL , только никак не пойму почему если строка с клавиатуры вводится(lines 10-11)
результат не правильный(1 или 2). А так (line 11) все нормально.


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 <string>
#include <conio.h>
using namespace std;
 
int main ()
{
    string input("найти в этом предложении гласные");
    //string input;
    //getline(cin, input);
  size_t found;
    int glasn = 0;
    
    found = input.find_first_of("аеёиоуыэюя");
    while(found != string::npos)
    {
        found = input.find_first_of("аеёиоуыэюя",found+1);
            glasn++;
    }
    printf("Kol-vo glasnyh: %d\n",glasn);
    
 
 _getch();
}
0
ForEveR
В астрале
Эксперт С++
7995 / 4754 / 651
Регистрация: 24.06.2010
Сообщений: 10,547
Завершенные тесты: 3
17.09.2010, 22:51 18
NikolaWhite, Через getline надо вводить строку с пробелами.
0
TheMachinist
244 / 176 / 47
Регистрация: 14.06.2010
Сообщений: 422
17.09.2010, 23:07 19
Дак я так и ввожу. закомментированные линии 9 и 10, и ерунда получается
0
asics
Freelance
Эксперт С++
2854 / 1789 / 355
Регистрация: 09.09.2010
Сообщений: 3,841
17.09.2010, 23:10 20
Ну так не надо их коментить.
0
17.09.2010, 23:10
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.09.2010, 23:10

Подсчитать количество гласных и согласных букв в предложении
Помогите пожалуйста не сильно понимаю в такой теме : Дано предложение ....

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

Строка содержит произвольный русский текст. Проверить, каких букв в нем больше, гласных или согласных
Строка содержит произвольный русский текст. Проверить, каких букв в нем больше,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru