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

удаление символов из строки! - C++

Восстановить пароль Регистрация
 
Bad_pr
1 / 1 / 0
Регистрация: 24.12.2010
Сообщений: 35
28.12.2010, 11:44     удаление символов из строки! #1
написать функцию удаления из строки s всех символов ASCIIкоды которых попадают в диапозон от н1 до н2 включительно 0<=н1<=255,0<=н2<=255, н1<=н2

помогите!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.12.2010, 11:44     удаление символов из строки!
Посмотрите здесь:

C++ Удаление n символов из строки
Удаление символов из строки C++
Удаление символов из строки C++
Удаление повторяющихся символов из строки C++
C++ Удаление символов из строки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
28.12.2010, 11:56     удаление символов из строки! #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
31
32
33
34
35
36
37
38
39
#include <iostream>
#include <string>
#include <algorithm>
#include <functional>
 
struct comp:public std::unary_function<unsigned char, bool>
{
    argument_type first;
    argument_type last;
    comp(argument_type f, argument_type l):first(f), last(l)
    {
    }
    comp():first(0), last(0) 
    {
    }
    result_type operator () (argument_type one)
    {
        return one >= first && one <= last;
    }
};
 
int main()
{
     std::string str;
     std::cout<<"Enter string\n";
     std::getline(std::cin, str);
     unsigned short first, second;
     std::cout<<"Enter ASCII codes of first and last for deleting\n";
     std::cin>>first>>second;
     if(first < 0 || first > 255 || second <0 || second > 255)
     {
         std::cerr<<"Error. Can` t be more than 255 or less than 0\n";
         return 1;
     }
     comp compare(static_cast<unsigned char>(first), static_cast<unsigned char>(second));
     str.erase(std::remove_if(str.begin(), str.end(), compare), str.end());
     std::cout<<"Result\n"<<str<<'\n';
     return 0;
}
Bad_pr
1 / 1 / 0
Регистрация: 24.12.2010
Сообщений: 35
28.12.2010, 12:56  [ТС]     удаление символов из строки! #3
спасибо! но у меня не работает((
как не через потоки написать?
grrrrr
 Аватар для grrrrr
45 / 45 / 7
Регистрация: 21.04.2009
Сообщений: 265
28.12.2010, 22:36     удаление символов из строки! #4
Bad_pr, вот по простенькому:

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
#include <iostream>
#include <cstring>
 
using namespace std;
 
void stroka(char *, int, int, int);
 
int main()
{
    const int size=255;
    char arr1[size];
    //char arr2[size];
    int r;
    cout << "Enter a line\n";
    cin.getline(arr1, size);
    r = strlen(arr1);
    cout << "Line before function use :\n";
    cout << arr1 << "\n";
 
    cout << "Enter an interval n1, n2 (0>= n1 <= n2 <=255) :\n";
    int n1, n2;
    cin >> n1 >> n2;
 
    while(n1>=n2)
    {
         cout << "Enter once again (0>= n1 <= n2 <=255)\n";
         cin >> n1 >> n2;
    }
 
    cout << "Line after function use :\n";
 
    stroka(arr1, r, n1, n2);
 
    cout << arr1 << "\n";
 
    return 0;
}
void stroka(char *mas1, int k, int i1, int i2)
{
    for(int i=0; i<k; i++)
    {
       for(int j=i1; j<=i2; j++)
       if(mas1[i] == char(j)) mas1[i] = ' ';
    }
}
Yandex
Объявления
28.12.2010, 22:36     удаление символов из строки!
Ответ Создать тему
Опции темы

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