Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Строки. Заменить символы - цифры на символ '*'. В заданной строке заменить подряд идущие пробелы - C++

03.03.2017, 15:54. Просмотров 500. Ответов 6
Метки нет (Все метки)

 Комментарий модератора 
П.5.16.Правил
Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.
Тема разделена на отдельные вопросы и закрыта!

1) Введите массив символов из 10 элементов. Замените символы - цифры на символ '*' (посредством цикла for).
2) В заданной строке заменить подряд идущие пробелы на один пробел (посредством цикла for).
3) Ввести строку и посчитать количество символов не считая пробела (посредством цикла for).

Заранее благодарю за ответы. Желательно полные решения данных задач.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.03.2017, 15:54
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Строки. Заменить символы - цифры на символ '*'. В заданной строке заменить подряд идущие пробелы (C++):

Заменить подряд идущие пробелы на один пробел - C++
2) В заданной строке заменить подряд идущие пробелы на один пробел (посредством цикла for).

Заменить 2 подряд идущие буквы на 1 символ - C++
Заменить 2 подряд идущие буквы на 1 символ У меня вышло как то так но не получается доработать. #include <iostream> #include...

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

Заменить в строке подряд идущие две буквы на одну - C++
Заменить в строке S подряд идущие буквы «а» на одну букву «а». помогите с кодом.не могу разобратся int _tmain(int argc, _TCHAR* argv) ...

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

Ввести с экрана строку. Заменить в строке все символы на 1, а пробелы на 0 - C++
Ввести с экрана строку. Заменить в строке все символы на 1, а пробелы на 0

6
GbaLog-
Любитель чаепитий
3122 / 1462 / 351
Регистрация: 24.08.2014
Сообщений: 5,175
Записей в блоге: 1
Завершенные тесты: 2
03.03.2017, 16:32 #2
http://rextester.com/BEUJK65806
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
#include <iostream>
#include <algorithm>
#include <cstdlib>
#include <iterator>
 
int main()
{
    std::cout << "Hello, world!\n";
    
    //1
    constexpr int n = 10 + 1;
    char arr[n]{};
    
    std::cin.getline(arr, n);
    
    std::replace_if(arr, arr + n, [] (const char c) { return std::isdigit(c); }, '*');
    
    std::cout << arr << '\n';
    
    //2
    std::string str = "eniki    beniki    eli    vareniki";
    
    const auto it = std::unique(str.begin(), str.end(), [] (const char l, const char r) { return l == ' ' && r == ' '; });
    
    std::copy(str.begin(), it, std::ostream_iterator<char>(std::cout));
    std::cout.put('\n');
    
    str.clear();
    
    //3
    std::getline(std::cin, str);
    
    std::cout << str.size() - std::count(str.begin(), str.end(), ' ') << '\n';
}
0
MrGluck
Модератор
Эксперт CЭксперт С++
7801 / 4845 / 754
Регистрация: 29.11.2010
Сообщений: 13,212
03.03.2017, 18:51 #3
Цитата Сообщение от GbaLog- Посмотреть сообщение
eniki * *beniki * *eli * *vareniki
где-то я это уже видел

Добавлено через 3 минуты
replace_if можно без лямбды:
C++
1
std::replace_if(arr, arr + n, isdigit, '*');
Добавлено через 1 минуту
Забавно, пока #include <string> (ещё не хватает cctype) не сделал - компилятор мне ругался на то, что getline не определён в std.
0
avgoor
967 / 601 / 130
Регистрация: 05.12.2015
Сообщений: 1,686
03.03.2017, 18:57 #4
Цитата Сообщение от MrGluck Посмотреть сообщение
Забавно, пока #include <string> (ещё не хватает cctype) не сделал - компилятор мне ругался на то, что getline не определён в std.
И что же тут забавного? Не подключить хедер в котором определена std::getline() и удивляться?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7801 / 4845 / 754
Регистрация: 29.11.2010
Сообщений: 13,212
03.03.2017, 19:03 #5
1.
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <algorithm>
#include <cctype>
#include <iostream>
#include <iterator>
#include <string>
 
int main()
{
    char str[10];
    std::cin.getline(str, sizeof(str));
    std::replace_copy_if(std::begin(str), std::end(str), std::ostream_iterator<char>(std::cout), isdigit, '*');
}
2.
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <iterator>
#include <regex>
#include <string>
 
int main()
{
    const std::string str = "eniki    beniki    eli    vareniki";
    std::regex_replace(std::ostreambuf_iterator<char>(std::cout), str.begin(), str.end(), std::regex(" {2,}"), " ");
}
3.
C++
1
2
3
4
5
6
7
8
9
10
#include <algorithm>
#include <iostream>
#include <string>
 
int main()
{
    std::string str;
    std::getline(std::cin, str);
    std::cout << str.length() - std::count(str.cbegin(), str.cend(), ' ');
}
или так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <iterator>
#include <sstream>
#include <string>
 
int main()
{
    std::string str;
    std::getline(std::cin, str);
    std::istringstream ist(str);
    std::cout << std::distance(std::istream_iterator<char>(ist), std::istream_iterator<char>());
}
0
GbaLog-
Любитель чаепитий
3122 / 1462 / 351
Регистрация: 24.08.2014
Сообщений: 5,175
Записей в блоге: 1
Завершенные тесты: 2
03.03.2017, 20:05 #6

Не по теме:

Цитата Сообщение от MrGluck Посмотреть сообщение
где-то я это уже видел
Честно украдено у вас.


Цитата Сообщение от MrGluck Посмотреть сообщение
replace_if можно без лямбды
Хм. А std::isdigit нельзя, этим и руководствовался.
0
MrGluck
03.03.2017, 20:51     Строки. Заменить символы - цифры на символ '*'. В заданной строке заменить подряд идущие пробелы
  #7

Не по теме:

Цитата Сообщение от GbaLog- Посмотреть сообщение
Честно украдено у вас.
Я и не против
Можно на ты.

0
03.03.2017, 20:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.03.2017, 20:51
Привет! Вот еще темы с ответами:

В символьной строке удалить все лишние подряд идущие пробелы. - C++
помогите пожалуйста написать программу:В символьной строке удалить все лишние подряд идущие пробелы.

В символьной строке удалить все лишние подряд идущие пробелы. - C++
Помогите пожалуйста написать программу,Каким образом можно осуществить: В символьной строке удалить все лишние подряд идущие пробелы?

Удалить все символы в строке, не являющиеся буквами и заменить множественные пробелы одним - C++
Ребята,буду запредельно благодарен.

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


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

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

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