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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Герман
0 / 0 / 0
Регистрация: 12.05.2012
Сообщений: 26
#1

ввод-вывод информации - C++

28.08.2012, 04:01. Просмотров 691. Ответов 5
Метки нет (Все метки)

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


C++ (Qt)
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 <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <locale.h> 
 
int main()
{
char buff;//читаем символ из потока
int word=0;//кол-во слов
int vowels=0;//кол-во гласных
setlocale(LC_ALL,"Rus"); 
printf("Введите текст:\n\n");
while(buff=getchar())//
{
 
вот тут то и есть первая проблема... не знаю как реализовать подсчет гласных, есть 
вариант (возможно с помощью ASCII кодировки) ну в общем не знаю как реализовать,
 и 2ая проблема как потом вывести этот текст без гласных, прошу помощи..
 
}
if(word>0)word++; //кількість слів на 1 більша ніж пробілів
printf("Слов:%i\nГласных букв:%i\nНажмите Enter чтобы выйти... ",word,vowels);
 
getchar();
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.08.2012, 04:01     ввод-вывод информации
Посмотрите здесь:

C++ ввод-вывод информации на с++
C++ программа на ввод числа и ввывод информации
ввод информации,сортировка,средний балл C++
C++ Ввод информации в программу не ограничивается фиксированным числом
C++ Эмуляция нажатий клавиш или автоматический ввод информации
Ввод информации в стек из файла и редактирование C++
C++ Ввод информации в структуру и поиск элемента по информации, находящейся в этом же элементе
Ввод информации в структуру и поиск минимального элемента C++
Структуры. Ввод информации с клавиатуры и печать C++
Неправильный ввод информации C++
C++ Ввод/вывод в консоль любой произвольной информации и закрытие ее после прочтения
C++ Ввод и вывод информации

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alt_Shift
50 / 50 / 2
Регистрация: 28.05.2012
Сообщений: 161
28.08.2012, 04:57     ввод-вывод информации #2
может быть просто сделать отдельный массив гласных русских букв и сравнивать каждый элемент с элементами введенной строки ?
alkagolik
Заблокирован
28.08.2012, 05:40     ввод-вывод информации #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
25
26
27
28
29
30
#include <stdio.h>
#include <ctype.h>
 
int is_wovel( char ch ) {
    if ( !ch )
        return 0;
    else if ( ch >= 'A')
        ch = tolower( ch );
    switch( ch ) {
        case 'a':
        case 'e':
        case 'i':
        case 'o':
        case 'u':
            return 1;
    }
    return 0;
}
 
int main() {
    char* str = "`1234567890-=+_)(*&^%$#@!~|\\][';/.,<>?:\"{}abcdefghigklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    char* p = str;
 
    while (*p) {
        putchar( isalpha(*p) ? is_wovel(*p) ? *p : 0 : 0 );
        ++p;
    }
 
    return 0;
}
Герман
0 / 0 / 0
Регистрация: 12.05.2012
Сообщений: 26
29.08.2012, 00:44  [ТС]     ввод-вывод информации #4
спасибо за советы..
но что то башка вообще не варит с этими лабами, у меня уже жар)
попробую завтра на свежую голову, а пока что наверно спать пойду
Герман
0 / 0 / 0
Регистрация: 12.05.2012
Сообщений: 26
01.09.2012, 17:57  [ТС]     ввод-вывод информации #5
вот начал заново но не получается....
думаю по таком алгоритме
1. запись в буффер гласных букв
2. ввод строки
3. сравнять строку с буффером и подсчитать кол-во совпавших элементов
4. вывести на экран строку без этих елементов

есть еще вариант
1.ввод строки
2.перевод каждого символа в ascii код внутри программы
3.сровнять ascii коды строки с asciі кодами гласных букв и высчитать количество совпавших кодов
4.результат вывести на экран в виде (Количество гласных букв = )
5.и в итоге вывести строку без этих букв


прошу помощи в реализации
alsav22
5415 / 4811 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
01.09.2012, 20:07     ввод-вывод информации #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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <cstdlib>
#include <Windows.h>
#include <string>
#include <iostream>
using namespace std;
 
int main()
{
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
  
  string str; 
  string vowel = "аеёиоуыэюяАЕЁИОУЫЭЮЯ";
  int  c = 0; 
  
  getline(cin, str); 
  
  cout << flush << "Строка без гласных букв: ";
//*............................................................ 
for (int i = 0; i < str.size(); i++)
  {
    if (vowel.find(str[i]) == -1)
        cout << str[i];
    else 
        c++;              
  }
//............................................................*/
/* ..вариант с итераторами...........................
for (auto i = str.begin(); i != str.end(); i++)
  {
    if (vowel.find(*i) == -1)
        cout << *i;
    else 
        c++;              
  } 
//................................................................*/    
   cout << endl << "Количество пропущенных гласных букв равно " << c << endl;
    
   system("pause");
   return 0;
}
Yandex
Объявления
01.09.2012, 20:07     ввод-вывод информации
Ответ Создать тему
Опции темы

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