15 / 15 / 3
Регистрация: 03.07.2012
Сообщений: 350
|
||||||
1 | ||||||
Удалить из строки символы * и удвоить остальные07.03.2017, 22:02. Показов 3491. Ответов 14
Метки нет Все метки)
(
Всем привет. Есть задачка: Дана строка. Преобразовать ее, удалив каждый символ * и повторив каждый символ, отличный от *.
Так вот, сделать я её сделал, только проблема одна. Как я понял, удалить символ нельзя со строки, но можно сдвинуть. Сдвинуть влево, получается, нужно на количество звездочек, то есть нужен счетчик этих звездочек. Но не обнуляется счетчик, помогите. Вот код ( громоздкий, не ругайте, что можно было проще ) :
0
|
|
07.03.2017, 22:02 | |
Ответы с готовыми решениями:
14
Все символы «пробел» удаляются из исходной строки, остальные символы – копируются Удвоить пробелы в строке символов, введенных с клавиатуры; символы, являющиеся цифрами - удалить |
Модератор
![]() 13412 / 10522 / 6285
Регистрация: 18.12.2011
Сообщений: 28,099
|
||||||
07.03.2017, 22:09 | 2 | |||||
Сделайте проще - сразу пишите результат в другую строку,
0
|
63 / 63 / 39
Регистрация: 18.11.2016
Сообщений: 562
|
||||||
07.03.2017, 22:14 | 3 | |||||
Прекрасно удаляется.
0
|
15 / 15 / 3
Регистрация: 03.07.2012
Сообщений: 350
|
|
07.03.2017, 22:21 [ТС] | 4 |
у меня char , а не string
![]() Добавлено через 2 минуты спасибо конечно, но что насчет "*" и счетчика. Может я где-то допустил глупую ошибку, не знаю.
0
|
63 / 63 / 39
Регистрация: 18.11.2016
Сообщений: 562
|
|
07.03.2017, 22:36 | 5 |
В задании обязательно делать символьный массив? Может все же string?
![]()
0
|
15 / 15 / 3
Регистрация: 03.07.2012
Сообщений: 350
|
|
07.03.2017, 23:25 [ТС] | 6 |
да вроде нет
![]() Добавлено через 21 минуту Если всё же в string писать, то надо std::cout и всё остальное писать? Добавлено через 14 минут Попытался написать в string, удаляет только одну звездочку, а вдруг их там 2, 3 или больше..
0
|
63 / 63 / 39
Регистрация: 18.11.2016
Сообщений: 562
|
||||||
07.03.2017, 23:35 | 7 | |||||
![]()
0
|
![]() 5868 / 4745 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
|
||||||
07.03.2017, 23:38 | 8 | |||||
Да:
0
|
15 / 15 / 3
Регистрация: 03.07.2012
Сообщений: 350
|
|
07.03.2017, 23:54 [ТС] | 9 |
size_t - возвращает длину строки, а str.size()-1 что делает? Буду благодарен, если поясните)
0
|
![]() 5868 / 4745 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
|
|
07.03.2017, 23:58 | 10 |
size_t - тип данных, беззнаковый целый.
Длину строки возвращает функция size(). А str.size()-1 - это индекс последнего символа строки.
0
|
15 / 15 / 3
Регистрация: 03.07.2012
Сообщений: 350
|
|
08.03.2017, 00:03 [ТС] | 11 |
0
|
141 / 119 / 29
Регистрация: 12.02.2017
Сообщений: 308
|
|
08.03.2017, 00:07 | 12 |
index-->0 - это постфиксный декремент index'а, который сравнивается с 0
0
|
15 / 15 / 3
Регистрация: 03.07.2012
Сообщений: 350
|
|
08.03.2017, 00:16 [ТС] | 13 |
Спасибо большое всем, с утреца более подробно разберусь, сейчас уже не могу(
0
|
Модератор
![]() 13412 / 10522 / 6285
Регистрация: 18.12.2011
Сообщений: 28,099
|
|
08.03.2017, 09:08 | 14 |
0
|
15 / 15 / 3
Регистрация: 03.07.2012
Сообщений: 350
|
||||||||||||||||
08.03.2017, 10:34 [ТС] | 15 | |||||||||||||||
Ура, я понял, что не так.
Поменял это :
Вот окончательный код, рабочий:
0
|
08.03.2017, 10:34 | |
Помогаю со студенческими работами здесь
15
В данном тексте удалить каждый символ * и повторить все остальные символы
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |