Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
gr132
0 / 0 / 1
Регистрация: 31.10.2016
Сообщений: 38
#1

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

03.03.2017, 15:54. Просмотров 547. Ответов 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
Ответы с готовыми решениями:

Заменить в строке пробелы идущие подряд
В заданной строке,заменить парное количество пробелов,которые идут подряд на...

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

Заменить 2 подряд идущие буквы на 1 символ
Заменить 2 подряд идущие буквы на 1 символ У меня вышло как то так но не...

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

Заменить в строке подряд идущие две буквы на одну
Заменить в строке S подряд идущие буквы «а» на одну букву «а». помогите с...

6
GbaLog-
Любитель чаепитий
3161 / 1467 / 462
Регистрация: 24.08.2014
Сообщений: 5,192
Записей в блоге: 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Эксперт С++
8054 / 4898 / 1426
Регистрация: 29.11.2010
Сообщений: 13,297
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
1008 / 602 / 157
Регистрация: 05.12.2015
Сообщений: 1,686
03.03.2017, 18:57 #4
Цитата Сообщение от MrGluck Посмотреть сообщение
Забавно, пока #include <string> (ещё не хватает cctype) не сделал - компилятор мне ругался на то, что getline не определён в std.
И что же тут забавного? Не подключить хедер в котором определена std::getline() и удивляться?
0
MrGluck
Модератор
Эксперт CЭксперт С++
8054 / 4898 / 1426
Регистрация: 29.11.2010
Сообщений: 13,297
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-
Любитель чаепитий
3161 / 1467 / 462
Регистрация: 24.08.2014
Сообщений: 5,192
Записей в блоге: 1
Завершенные тесты: 2
03.03.2017, 20:05 #6

Не по теме:

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


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

Не по теме:

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

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

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

Заменить символы табуляции в исходной строке на пробелы
Напишите функцию char* (......), заменяющую символы табуляции в исходной...

Заменить символ двоеточия на символ точки в заданной строке, начиная с указанной позиции
Правильно ли я делаю задание: Составить и протестировать функцию для замены...


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

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

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