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

Дан текст.Найти количество слов,где две гласные буквы и вывести их на экран. - C++

Восстановить пароль Регистрация
 
Exiss
2 / 2 / 1
Регистрация: 11.04.2013
Сообщений: 51
11.04.2013, 22:49     Дан текст.Найти количество слов,где две гласные буквы и вывести их на экран. #1
Здравствуйте,уважаемые форумчане!Помогите пожалуйста с написанием программ-а то завтра сдать уже надо...
Препод ставит такие требования:
а)писать на С++;
б)использовать в программе не ссылки,а указатели;
в)использовать подпрограммы.
Работаю в Dev C++

Заранее ОГРОМНЕЙШЕЕ СПАСИБО!

4.Строки
Дано текст.Найти количество слов,где две гласные буквы и вывести их на экран.

Добавлено через 1 час 2 минуты
Ну пожалуйста,помогите...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.04.2013, 22:49     Дан текст.Найти количество слов,где две гласные буквы и вывести их на экран.
Посмотрите здесь:

Найти количество слов, начинающихся на гласные буквы C++
C++ Дан текст, содержащий целые числа. Вывести на экран количество чисел в нем
C++ Дан текстовый файл. Вывести на экран количество предложений в нём и количество слов в каждом предложении.
C++ Дан текст. а) Найти количество слов, начинающихся с буквы б
C++ Дан текстовый файл. Вывести на экран количество предложений в нём и количество слов в каждом предложении
Дан текст, найти количество слов и количество слов, у которых первый и последний символ совпадают C++
C++ В предложении найти и вывести на экран все слова, содержащие ровно две буквы “d”
Дан текст. Вывести все его гласные буквы C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
anmartex
...
 Аватар для anmartex
1700 / 1193 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
12.04.2013, 10:23     Дан текст.Найти количество слов,где две гласные буквы и вывести их на экран. #2
Exiss, может тогда всё же на C? Ибо, как я понимаю STL нельзя использовать, а тогда в принципе за исключением выделения памяти, работы с потоками разница не большая. Просто, говоря за себя, сложно передавать указатель, там где нужно ссылку; использовать o/i stream, но не использовать контейнеров, алгоритмов, итераторов; ну и т.п.
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <iostream>
#include <iomanip>
#include <fstream>
#include <string>
#include <cstring>
#include <cstdlib>
#include <cctype>
 
//-----------------------------------------------------------------------------
size_t GetFileSize(std::ifstream* f)
{
   f->seekg(0, f->end);
   size_t length = f->tellg();
   f->seekg(0, f->beg);
 
   return length;
}
//-----------------------------------------------------------------------------
int GetWord(const char* text, const char** begin, const char** end)
{
   for (; *text && !isalpha(*text); ++text) { ; }
 
   *begin = text;
 
   for (; *text && isalpha(*text); ++text) { ; }
 
   *end = text;
 
   return (*begin < *end);
}
//-----------------------------------------------------------------------------
size_t CountAndPrintWord(const char* text)
{
   const char CChars[] = "aeiouy";
 
   size_t count = 0;
   const char* begin;
   const char* end;
 
   while (GetWord(text, &begin, &end))
   {
      size_t inc = 0;
      for (const char* it = begin; it < end; ++it)
      {
         if (strchr(CChars, tolower(*it)))
         {
            inc++;
         }
      }
 
      if (inc == 2)
      {
         std::cout << std::string(begin, end) << std::endl;
         count++;
      }
 
      text = end + 1;
   }
 
   return count;
}
//-----------------------------------------------------------------------------
 
int main(int argc, const char* argv[])
{
   if (argc != 2)
   {
      std::cerr << "Usage: program <FILE.txt>" << std::endl;
      std::system("pause");
      return EXIT_FAILURE;
   }
 
   std::ifstream f(argv[1], std::ifstream::binary);
 
   if (!f.is_open())
   {
      std::cerr << "file '" << argv[1] << "' is not open ..." << std::endl;
      return EXIT_FAILURE;
   }
 
   size_t size = GetFileSize(&f);
   char* buff = new char[size + 1];
   buff[size] = '\0';
 
   f.read(buff, size);
   f.close();
 
   CountAndPrintWord(buff);
 
   std::system("pause");
 
   delete[] buff;
 
   return EXIT_SUCCESS;
}
Достаточно перетащит текстовый файл на бинарник:

Дан текст.Найти количество слов,где две гласные буквы и вывести их на экран.

Бинарник + исходники (C, C++): program.7z

P.S.: в архиве лежит ещё *.cpp исходник: malloc/free заменены на new/delete; работа с потоками выполняется через std::stream.
Exiss
2 / 2 / 1
Регистрация: 11.04.2013
Сообщений: 51
12.04.2013, 21:22  [ТС]     Дан текст.Найти количество слов,где две гласные буквы и вывести их на экран. #3
Yandex
Объявления
12.04.2013, 21:22     Дан текст.Найти количество слов,где две гласные буквы и вывести их на экран.
Ответ Создать тему
Опции темы

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