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

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

Войти
Регистрация
Восстановить пароль
 
SAUtrade
13 / 13 / 1
Регистрация: 21.10.2012
Сообщений: 140
#1

Фильтр (ispunct) - C++

16.11.2012, 21:53. Просмотров 680. Ответов 0
Метки нет (Все метки)

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
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
#include <iostream> 
#include <string.h> 
#include <stdio.h>
 
using namespace std; 
 
const int MAXLEN = 256;
 
void filt(char *string, int key)
{
    int i, j;
 
    for (i = 0; i < strlen(string); i++)
    {
        switch(key)
        {
            case 1:
                if ((string[i] >= 65 && string[i] <= 90) || (string[i] >= 100 && string[i] <= 122))
                    cout << " ";
                else 
                    cout << string[i];
                break;
            case 2:
                if (string[i] >= 128 && string[i] <= 175)
                    cout << " ";
                else
                    cout << string[i];
                break;
            case 3:
                if (ispunct (*string)) // вопрос по этой функции
                    cout << " ";
                else
                    cout << string[i];
                break;
            case 4:
                if (string[i] >= 48 && string[i] <= 57)
                    cout << " ";
                else
                    cout << string[i];
                break;
        }
 
        
    }
}
 
 
int main() 
{ 
    setlocale (LC_ALL, "RUS");
    char string[MAXLEN]; 
    int min, max;
    int key;
    int flag;
    
    cout << "Введите текст: ";
    gets(string);
 
    cout << endl << "Выберите фильтр" << endl << "1. Символы латинского алфавита" << endl << "2. Символы кириллицы" << endl << "3. Смволы пунктуаци" << endl << "4. Цифры" << endl << ">>> ";
    cin >> key;
    filt(string, key);
}
прога хорошо работает с латиницей и цифрами... Нашел заметку про функцию ispunct - которая если я правильно понял должна фильтровать пунктуацию... Но когда ввожу строку без пунктуации и выбираю фильтр пунктуация -- выбивает ошибку... А когда строка содершит пунктуационные знаки чистит всю строку... Может я не правильно использую данную функцию?

Добавлено через 2 часа 36 минут
Пока отставлю в сторону эту функцию)) напишу по другому))
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
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 <string.h> 
#include <stdio.h>
 
using namespace std; 
 
const int MAXLEN = 256;
 
void filt(char *string, int key)
{
    int i;
 
    for (i = 0; i < strlen(string); i++)
    {
        switch(key)
        {
            case 1:
                if ((string[i] >= 65 && string[i] <= 90) || (string[i] >= 100 && string[i] <= 122))
                    cout << " ";
                else 
                    cout << string[i];
                break;
            case 2:
                if (string[i] >= 128 && string[i] <= 175)
                    cout << " ";
                else
                    cout << string[i];
                break;
            case 3:
                if (string[i] == '!' || string[i] == ':' || string[i] == '.' || string[i] == ',' || string[i] == '-' || string[i] ==';' || string[i] =='?')
                    cout << " ";
                else
                    cout << string[i];
                break;
            case 4:
                if (string[i] >= 48 && string[i] <= 57)
                    cout << " ";
                else
                    cout << string[i];
                break;
            case 5:
                exit(0);
        }
    }
}
 
int main() 
{ 
    setlocale (LC_ALL, "RUS");
    char string[MAXLEN]; 
    char newstring[MAXLEN] = {0};
    int key;
 
    cout << "Введите текст: ";
    gets(string);
do
{
    cout << endl << "Выберите фильтр" << endl << "1. Символы латинского алфавита" << endl << "2. Символы кириллицы" << endl << "3. Смволы пунктуаци" << endl << "4. Цифры" << endl <<  "5. Выход" << endl << ">>> ";
    cin >> key;
    filt(string, key);
}
while (key != 5);
}
А как вот сделать чтобы когда я сделал фильтр введенного текста --- можно было бы добавить еще один фильтр?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2012, 21:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Фильтр (ispunct) (C++):

Реализация ispunct при использовании потоков - C++
Дана программа-переводчик с англ. на русский. Проблема в том, что при вводе текста со знаками препинания или с регистром не считывается...

Звуковой фильтр с++ - C++
Доброго времени суток. Выдали задания, не могу понять как программа должна работать...я бы уже начал писать, но чисто в голове не...

фильтр Гаусса - C++
надо написать фильтр гаусса... после попыток его написать изображение почему то затемняется... хотя вроде по алгоритмам верным... вот...

Фильтр Калмана - C++
Пожалуйста, ребята, кто-нибудь может мне внятно и без всяких ссылок на всякие pdf ненужные файлы объяснить мне по быстрому про фильтр...

Фильтр в DBFrid - C++
Здравствуйте,Пытаюсь выполнить фильтр данных в DBGrid с помощью CheckBox, данные для сравнения ввожу в Edit, но выдаёт ошибку &quot;Аргументы...

Драйвер-фильтр на C/C++ - C++
Нужно написать драйвер-фильтр на C/C++.Он должен создавать &quot;виртуальный&quot; жёсткий диск (по сути просто иконку). При открытии диска какой-то...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2012, 21:53
Привет! Вот еще темы с ответами:

Медианний фильтр на С - C++
Помогите создать пример медианного фильтра на С. Принцип такой: дано одномерний масив(например arr={ 3,5,2,4,7,3,9,12,1,7}).Нужно взять...

Драйвер Фильтр - C++
Здрастье! В Windows Driver Kit есть исходники и описания для драйверов фильтров (как их писать на С)! Но я не могу найти там ничего...

Программа-фильтр - C++
Вот такое чудо нам задали на уроках програмирования, увы не чего не понимаю помогите!! ХЕЛЛП!!! Написать программу-фильтр, которая...

Медианный фильтр изображения С++ - C++
Здравствуйте подскажите пожалуйста по реализации данного фильтра как его сделать есть у кого нибудь исходники? Нужно к черно-белому фото...


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

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

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