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

Фильтрация введённого текста - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Непонимаю( http://www.cyberforum.ru/cpp-beginners/thread1025074.html
Уважаемые программисты , обращаюсь к вам с просьбой , объяснить мне , как в современном мире пишутся программы , потому что чем дальше я учусь то все больше падаю в отчаяние , некоторые пишут что полнофункциональные окна пишутся с помощью WPF (я впервые об этом слышу ) , некоторые говорят с помощью Windows Forms но на C # . Объясните мне , поскольку я только учусь , и некому объяснить . Я умею...
C++ Если в A есть символы из B и в B нет повторяющихся символов, то упорядочить символы B в порядке, обратном к алфавитном Привет, форумчане! Дано задание: >Даны строки A и B. Если в A есть символы из B и в B нет повторяющихся символов, то упорядочить символы B в порядке, обратном к алфавитному, и удалить все символы, кроме знаков препинания из A; в остальных случаях упорядочить символы A в алфавитном порядке, удалив повторяющиеся символы, и продублировать латинские буквы в B. При вводе кириллицы выдать ошибку... http://www.cyberforum.ru/cpp-beginners/thread1025068.html
не могу найти ошибку, программа ничего не выводит C++
Не выводится комбинация из 5 единиц или нулей, не могу найти ошибку, подскажите пожалуйста, где ошибся:cry: Само задание: Дана строка, состоящая из групп нулей и единиц, разделенных одним или несколькими пробелами. Найдите и выведите на экран группу из пяти символов, если такая имеется. Код программы: #include "stdafx.h" #include <iostream> #include <fstream> #include <string.h>...
C++ посчитать время выполнения поиска
Добрый вечер. Есть код B-дерева. Мне нужно показать, что время, выполнения поиска, логарифмическое. Засекаю время в ключи, перед вызовом функций поиска. Но время какое-то странное.... #include "stdafx.h" #include <stdarg.h> #include <iostream> #include <windows.h> #include <stdlib.h> #include <conio.h> const long double max = 10000;
C++ Нужно посчитать сложность алгоритма http://www.cyberforum.ru/cpp-beginners/thread1025031.html
Дорогие обитатели форума, нужно посчитать сложность рекурсивной функции удаления вершин из бинарного дерева. К сожалению, не представляю, как это можно сделать =( В задании сказано воспользоваться некой формулой и посчитать в общем случае, а затем в самом коде добавить какую-то переменную, которая поможет сосчитать сложность в конкретных случаях. Программа: #include<iostream>...
C++ Найти модуль суммы и квадрат произведения компонент файла Помогите пожалуйста решить задачку. Дан файл f, компоненты которого являются действительными числами. Найти модуль суммы и квадрат произведения компонент файла f. (на с++). Заранее благодарен. подробнее

Показать сообщение отдельно
l7tu4ka
0 / 0 / 0
Регистрация: 18.04.2012
Сообщений: 6
01.12.2013, 23:02     Фильтрация введённого текста
Собственно задача:
Создать программу, фильтрующую текст, введенный с клавиатуры. Задача программы заключается
в считывании текста и отображении его на экране , используя замену заданного набора символов на пробелы.
Программа должна предлагать следующие варианты наборов символов для фильтрации:

Символы латинского алфавита (нажал, к примеру, "1" - заменилось на пробелы, нажал ещё раз - вернуло эти же латинские)
Символы кириллицы
Символы пунктуации
Цифры

Фильтры могут накладываться последовательно. (т.е. возможность лат. фильтр поставить и сверху ещё и цифры или кириллицу)
При повторной установке существующего фильтра данный фильтр должен сниматься.

Нужна помощь в допиливании.
Индийская версия
Фильтры работают, но по очереди и не снимаются при повторной установке
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
#include <iostream>
#include <conio.h>
#include <Windows.h>
using namespace std;
int update(char a)
{
    if((int(a)>=-128)&&(int(a)<=-81))return((int)a+64);
    else if((int)a==-15)return -26;
    else if((int)a==-16)return -88;
    else if((int(a)>=-32)&&(int(a)<=-17))return ((int)a+16);
    else return 0;
 
}
void print(char s[],int n,int f)
{
    for(int i=0;i<n;i++)
    {
        if(f==1)
            if((((int)s[i]>=65)&&((int)s[i]<=90))||(((int)s[i]>=97)&&((int)s[i]<=122)))cout << ' ';
            else if((int)s[i]<0)cout << char(update(s[i]));
            else cout << s[i];
        if(f==2)
            if((int)s[i]<0)cout << ' ';
            else cout << s[i];
        if(f==3)
            if((s[i]=='.')||(s[i]==',')||(s[i]=='!')||(s[i]=='?'))cout << ' ';
            else if((int)s[i]<0)cout << char(update(s[i]));
            else cout << s[i];
        if(f==4)
            if(((int)s[i]>=48)&&((int)s[i]<=57))cout << ' ';
            else if((int)s[i]<0)cout << char(update(s[i]));
            else cout << s[i];
        if(f==0)
            if((int)s[i]<0)cout << char(update(s[i]));
            else cout << s[i];
    }
    cout << endl << "Фильтр применен\n";
}
void main()
{
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
    char s[1000];
    cout << "Bведите строку >>\n";
    cin.getline(s,1000);
    int v=0;
    do
    {
        cout<<s;
        cout << "\nМеню фильтров: \n1.Символы латинского алфавита\n2.Символы кириллицы\n";
        cout << "3.Символы пунктуации\n4.Цифры\n5.Вся строка\n0.Bыход\nВаш выбор >> ";
        v=_getch();
        if(v=='1')print(s,strlen(s),1);
        if(v=='2')print(s,strlen(s),2);
        if(v=='3')print(s,strlen(s),3);
        if(v=='4')print(s,strlen(s),4);
        if(v=='5')print(s,strlen(s),0);
 
        _getch();
        system("cls");
    }
    while(v!='0');
}

2я индийская версия
Здесь фильтры могут накладываться, но так же не отменяются(если отфильтровал всё, то строка считай потерялась T_T)
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 <conio.h>
#include <Windows.h>
using namespace std;
 
void Filter(char *S)
{
    static const char *arkir = "аоуеёиэюяыАОУЕЁИЭЮЯЫйцкнгшщзхъфвпрлджчсмтьбЙЦКНГШЩЗХЪФВПРЛДЖЧСМТЬБ";
    static const char *arlat = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPLKJHGFDSAZXCVBNM";
    static const char *arsym = "|\\/<>?,.;':\"{}[]~`!@#$%^&*()_+-=";
    static const char *arnum = "1234567890";
    static const char *space = " ";
    int key=_getch();
    while(*S)
    {
        switch(key)
        {
        case '1':
        if(strchr(arkir,*S))    
            *S=*space;
        break;
        case '2':
        if(strchr(arlat,*S))    
            *S=*space;
        break;
        case '3':
        if(strchr(arsym,*S))    
            *S=*space;
        break;
        case '4':
        if(strchr(arnum,*S))
            *S=*space;
        break;
        S++;
    }
}
 
void main()
{
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
    
    const int size = 100;
    char S[size];
    cout<<"Введите строку: ";
    cin.getline(S,size);
    while(true)
    {
    cout<<1<<" - kir\n";
    cout<<2<<" - lat\n";
    cout<<3<<" - sym\n";
    cout<<4<<" - num\n";
 
    Filter(S);
    cout<<S<<endl;
    }
    _getch();
}


Помощь очень нужна, братцы!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:36. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru