Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
19Кристина
-2 / 1 / 0
Регистрация: 06.02.2015
Сообщений: 174
1

Написать программу, которая удаляет из данного набора символов все вхождения символов S и s

15.06.2015, 21:10. Просмотров 371. Ответов 11
Метки нет (Все метки)

Написать программу, которая получает от пользователя набор символов, исключая пропуск, и удаляет из этого набора все вхождения символов S и s.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.06.2015, 21:10
Ответы с готовыми решениями:

Стек. Выведите все вхождения символов указанного набора в текст в обратном порядке
Дан текст, состоящий из заглавных и строчных английских букв, символов ! ;...

Написать программу, которая определяет, сколько символов введено с клавиатуры и сколько из них числовых символов
Нужна помощь. Написать программу, которая определяет, сколько символов введено...

Написать программу, которая удаляет все заданные символы
char str; cin.getline(str, 250); char str2; cin >> str2; for (int i = 0; i...

Написать программу, которая вводит с клавиатуры строку не более 100 символов, еще одну строку не более 50 символов и выводит на экран позиции вхождени
Задание: Написать программу, которая вводит с клавиатуры строку не более 100...

Написать программу, которая удаляет из записи числа все цифры, совпадающие с максимальной цифрой
Написать программу, которая удаляет из записи числа все цифры, совпадающие с...

11
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16753 / 6644 / 864
Регистрация: 12.06.2012
Сообщений: 19,897
Завершенные тесты: 1
15.06.2015, 21:45 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
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
 
int main(int argc, char *argv[])
{
    std::vector<int> symbols;
 
    std::cout << "Enter symbols and press EOF (Ctrl+D or Ctrl+Z & Enter).." << std::endl;
 
    std::copy(std::istream_iterator<int>(std::cin), std::istream_iterator<int>(), std::back_inserter(symbols));
 
    std::remove_if(symbols.begin(), symbols.end(), [](int c) {
        return c == 's' || c == 'S' || isspace(c);
    });
 
    std::cout << std::endl << "Entered sequence: " << std::endl;
    for(const auto& c: symbols)
        std::cout << c;
 
    std::cout << std::endl;
}
1
Krock21rus
74 / 74 / 27
Регистрация: 18.11.2013
Сообщений: 373
Завершенные тесты: 2
15.06.2015, 21:58 3
простите за наглое копирование предыдущего ответа, просто мне кажется что так экономнее и логичнее)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
#include <iterator>
#include <algorithm>
 
int main(int argc, char *argv[])
{
    std::string symbols;
 
    std::cout << "Enter symbols and press EOF (Ctrl+D or Ctrl+Z & Enter).." << std::endl;
 
    std::copy(std::istream_iterator<int>(std::cin), std::istream_iterator<int>(), std::back_inserter(symbols));
 
    std::remove_if(symbols.begin(), symbols.end(), [](int c) {
        return c == 's' || c == 'S' || isspace(c);
    });
 
    std::cout << std::endl << "Entered sequence: " << std::endl;
    for(const auto& c: symbols)
        std::cout << c;
 
    std::cout << std::endl;
}
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16753 / 6644 / 864
Регистрация: 12.06.2012
Сообщений: 19,897
Завершенные тесты: 1
15.06.2015, 22:08 4
Krock21rus, а вы запустить пробовали? Или вы думаете, что вот так вот просто int преобразуется к char-у и добавится в строку? Такой метод есть вроде как только для char-ов. Либо меняйте int на char (что может привести к нехватку кодов символов), либо использовать вектор.

..ну или писать свою реализацию, без использования хотя бы копирования из потока ввода с помощью std::copy и итераторов..
0
Kastaneda
Jesus loves me
Эксперт С++
4938 / 3014 / 346
Регистрация: 12.12.2009
Сообщений: 7,610
Записей в блоге: 2
Завершенные тесты: 1
15.06.2015, 22:20 5
Вот так еще короче будет
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <iterator>
#include <algorithm>
 
int main(int argc, char *argv[])
{
    std::cout << "Enter symbols and press EOF (Ctrl+D or Ctrl+Z & Enter).." << std::endl;
 
    std::string str;
    std::copy(std::istream_iterator<char>(std::cin), std::istream_iterator<char>(), std::back_inserter(str));
    std::copy_if(std::begin(str), std::end(str), std::ostream_iterator<char>(std::cout << "Entered sequence: "), 
         [](char ch) { return !(ch == 's' || ch == 'S' || isspace(ch)); });
 
    std::cout << std::endl;
}
2
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16753 / 6644 / 864
Регистрация: 12.06.2012
Сообщений: 19,897
Завершенные тесты: 1
15.06.2015, 22:33 6
Kastaneda, тогда, пожалуй, можно и еще укоротить, без "физической" строки вообще..
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <iterator>
#include <algorithm>
 
int main(int argc, char *argv[])
{
    std::cout << "Enter symbols and press EOF (Ctrl+D or Ctrl+Z & Enter).." << std::endl;
 
    std::copy_if(
        std::istream_iterator<char>(std::cin),
        std::istream_iterator<char>(),
        std::ostream_iterator<char>(std::cout),
        [](char ch) {
            return !(ch == 's' || ch == 'S' || isspace(ch));
        }
    );
 
    std::cout << std::endl;
}
Правда, тогда по нажатию Enter сразу выведется "Entered sequence: " и придется ожидать завершения ввода с EOF после вывода новой последовательности, но, как альтернатива system("pause") вполне ничего
0
daslex
1291 / 535 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
15.06.2015, 22:35 7
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <vector>
#include <iterator>
#include <algorithm>
 
using namespace std;
 
int main()
{
    cout<<"Ctr+Z for EXIT\nEnter+Enter for new input\n\n";
    copy_if(istream_iterator<char>(cin),{}, ostream_iterator<char>(cout),[](const char x)->bool{
        return ( x!='S' && x!='s');
    });
 
}
1
KOPOJI
15.06.2015, 22:37
  #8

Не по теме:

Ну да, еще короче) Только, имхо, bool здесь писать, как бельмо на глазу - и так же ясно, что результат сравнения будет bool..

0
daslex
1291 / 535 / 177
Регистрация: 02.08.2011
Сообщений: 2,756
15.06.2015, 23:08 9
И еще 1 вариант . Для тех кто итераторы пока еще не понимает. И он немножко отличается от приведенного
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <vector>
 
using namespace std;
 
int main()
{
    vector<char> v;
    char ch;
    cout<<"Ctr+Z and Enter for endind\n\n";
    while (cin>>ch)  if (ch!='S' && ch!='s') v.push_back(ch);
    for (auto &i:v) cout<<i;
}
0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16753 / 6644 / 864
Регистрация: 12.06.2012
Сообщений: 19,897
Завершенные тесты: 1
15.06.2015, 23:16 10
Цитата Сообщение от daslex Посмотреть сообщение
C
1
if (ch!='S' && ch!='s')
Цитата Сообщение от 19Кристина Посмотреть сообщение
которая получает от пользователя набор символов, исключая пропуск
isspace же еще надо..
0
daslex
15.06.2015, 23:25
  #11

Не по теме:

А запустить? А посмотреть? :p

0
KOPOJI
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
16753 / 6644 / 864
Регистрация: 12.06.2012
Сообщений: 19,897
Завершенные тесты: 1
15.06.2015, 23:31 12

Не по теме:

Цитата Сообщение от daslex Посмотреть сообщение
А запустить? А посмотреть?
А это можно сказать спасибо венде :-! Вынул диск с музыкой и вуаля!
Написать программу, которая удаляет из данного набора символов все вхождения символов S и s

Хотя каким образом g++ прицепился к сидюку, я так и не понял)



Да, я уже сообразил про пробелы, прошу прощения
0
15.06.2015, 23:31
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.06.2015, 23:31

Написать программу, которая удаляет в строке все буквы b в тексте, написанном латинскими буквами
Помогите пожалуйста написать программу. Нужно написать программу, которая...

Написать программу, которая будет выводить елочку из символов
Нужно написать программу которая будет выводить елочку из символов ^ ^ ...

Написать программу, которая преобразует строку символов в число
Написать программу, которая преобразует строку символов в число (целое) или...


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

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

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