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

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

Войти
Регистрация
Восстановить пароль
 
im_Kudrik
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 20
#1

удалить гласные и вывести точку перед согласными - C++

18.11.2011, 11:00. Просмотров 597. Ответов 6
Метки нет (Все метки)

привет ,помоги с задачей..вводим через стринг слово нужно удалить в этом слове все гласные и перед согласными поставить точку также нужно если слово введено в верхнем регистре вывести в нижнем пример: INPUT :TEst OUPUT:.t.s.t
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2011, 11:00     удалить гласные и вывести точку перед согласными
Посмотрите здесь:
C++ Переписать в отдельную строку слова, в которых гласные буквы чередуются с согласными
C++ Из заданного файла удалить все слова c двумя согласными и вывести на экран оставшиеся слова
Удалить гласные из строк C++
Удалить все гласные из строки C++
Удалить гласные буквы из текста C++
Удалить слова содержащие гласные буквы... C++
Удалить все гласные буквы из строки C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xAtom
914 / 739 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
18.11.2011, 11:50     удалить гласные и вывести точку перед согласными #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
#include <iostream>
#include <string>
using namespace std;
 
 
int main(void)
{
   string str;
   cin >> str;
 
   // удалить все гласные
   string::size_type pos = 0;
   while((pos = str.find_first_of("aoeiyuAOEIYU", pos)) != string::npos) 
        str.erase(pos, 1);
    
   // перевести из верхнего регистра в нижний
   for(string::iterator it = str.begin(); it != str.end(); *it++){
         if(isupper(*it))
                *it = tolower(*it);
   }
 
   // расставить точки перед согласными
   for(string::iterator i = str.begin(); i != str.end(); *i++) {
         if(isalpha(*i)) 
               i = str.insert(i, '.') + 1;
   }
   cout << str << endl;
   cin.get();
   return 0;
}
im_Kudrik
0 / 0 / 0
Регистрация: 17.11.2011
Сообщений: 20
18.11.2011, 12:14  [ТС]     удалить гласные и вывести точку перед согласными #3
спасибо огромное ,а можно еще как нить проще ?просто без вот этого int main(void)...я тока учусь програмированию...
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
18.11.2011, 12:57     удалить гласные и вывести точку перед согласными #4
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
#include <iostream>
#include <algorithm>
#include <iterator>
 
using namespace std;
 
static  string gl = "aoeiyuAOEIYU";
 
////////////////////////////////////////////////////////////////
 
class IsVolw: public unary_function<char, bool>
{
    public:
        bool operator()(char ch)
        {
            string::iterator it = find(gl.begin(), gl.end(), ch);
 
            if (it != gl.end()) //::npos
                return true;
 
            return false;
        }
};
 
 
////////////////////////////////////////////////////////////////
 
class Convert: public unary_function<char, void>
{
    public:
        void operator()(char& ch)
        {
            if (isupper(ch))
                ch = std::tolower((unsigned char)ch);
        }
};
 
 
////////////////////////////////////////////////////////////////
 
int main ()
{
    string str = "CyberFO5RU9M";
 
 
    // удалить все гласные
    str.erase(remove_if(str.begin(), str.end(), IsVolw()), str.end());
    
    // перевести из верхнего регистра в нижний
    for_each(str.begin(), str.end(), Convert());
    
    
    // расставить точки перед согласными
    //
 
 
    return 0;
}
как , с помощью алгоритмов, расставить точки?
neske
1474 / 841 / 74
Регистрация: 26.03.2010
Сообщений: 2,889
18.11.2011, 15:03     удалить гласные и вывести точку перед согласными #5
PointsEqual, а зачем? Если есть метод insert, которым и воспользовался xAtom. это помоему самый удобный вариант в данном случае.
PointsEqual
ниначмуроФ
834 / 518 / 33
Регистрация: 12.10.2009
Сообщений: 1,915
18.11.2011, 15:05     удалить гласные и вывести точку перед согласными #6
ради интереса
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2011, 15:41     удалить гласные и вывести точку перед согласными
Еще ссылки по теме:
Удалить все гласные буквы из строки C++
C++ Удалить все гласные буквы из текстового файла
Удалить все гласные буквы из строки, используя функции C++
Массив строки. Удалить с масива слова которые заканчиваються на гласные буквы C++
C++ Ввести с клавиатуры строку символов,удалить все гласные буквы из строки

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

Или воспользуйтесь поиском по форуму:
ОгУрЕц
Заблокирован
18.11.2011, 15:41     удалить гласные и вывести точку перед согласными #7
Цитата Сообщение от im_Kudrik Посмотреть сообщение
спасибо огромное ,а можно еще как нить проще ?просто без вот этого int main(void)...я тока учусь програмированию...
- может так
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>
#include <string>
using namespace std;
 
int main()
{
    cout<<"vvedite stroky : ";
    string str;cin>>str;
    string glasnie = "aoeiyu";
    for(int i = 0; i < str.length(); i++)
    {
        str[i] = tolower(str[i]);//delaem is zaglavnih malenkimi
        if(glasnie.find(str[i]) != -1)
        {
            str.erase(i,1);
            i--;
        }
        else
        {
            str.insert(i,".");
            i++;
        }
    }
    cout<<"vivod : "<<str<<endl;
    system("pause");
    return 0;
}
vvedite stroky : CyberFoRUM
vivod : .c.b.r.f.r.m
Yandex
Объявления
18.11.2011, 15:41     удалить гласные и вывести точку перед согласными
Ответ Создать тему
Опции темы

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