|
3 / 3 / 1
Регистрация: 01.12.2022
Сообщений: 5
|
||||||
Функция удаляющая пробелы в начале и конце строки01.12.2022, 18:59. Показов 1061. Ответов 17
Метки нет (Все метки)
Разработайте функцию std::string TrimBlanks(std::string const& str),
выполняющую отрезание пробелов в начале и в конце строки str, и возвращающую результирующую строку Разработайте на ее основе программу, выполняющую отрезание пробелов в начале и конце каждой строки, поступающей со стандартного потока ввода, и выводящую результат в стандартный поток вывода. Здравствуйте, как можно сделать передачу ссылки на const string в функции TrimBlanks и как сделать функцию space_ рабочей?
0
|
||||||
| 01.12.2022, 18:59 | |
|
Ответы с готовыми решениями:
17
Функция удаляющая пробелы в начале и в конце строки Функция удаляющая элементы списка в начале и в конце Удалить пробелы в начале и конце строки |
|
Just Do It!
|
|||||||
| 01.12.2022, 20:56 | |||||||
Сообщение было отмечено ElNikito как решение
Решение
1
|
|||||||
|
3 / 3 / 1
Регистрация: 01.12.2022
Сообщений: 5
|
|
| 01.12.2022, 20:58 [ТС] | |
|
Спасибо за ответ, все работает! Только нужно мне было прописать в функции space_ не c != ' ', а c == ' ' и тогда программа будет выполнять свою функциюю
1
|
|
|
118 / 86 / 35
Регистрация: 07.11.2022
Сообщений: 355
|
||||||
| 01.12.2022, 22:27 | ||||||
|
XLAT,
никогда не пользовался std::string_view. сейчас стал смотреть, что это такое, увидел в вашем коде undefined behavior. ваши функции без изменений , main немного изменил
0
|
||||||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 01.12.2022, 22:37 | |
|
0
|
|
|
118 / 86 / 35
Регистрация: 07.11.2022
Сообщений: 355
|
|
| 01.12.2022, 22:45 | |
|
0
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||
| 01.12.2022, 22:53 | ||
|
NEED-A-JOB, в вашем коде - вижу.
В коде XLAT, не вижу. А вот что вы написали. https://en.cppreference.com/w/... tring_view Читаем что он из - себя представляет. Со всеми вытекающими последствиями. Добавлено через 3 минуты Кроме того что у XLAT, использует широкую строку, wcout и cout одновременно
0
|
||
|
Just Do It!
|
||
| 01.12.2022, 22:53 | ||
|
string_view не является хозяином своего содержимого. юзать его нужно если хотца избежать ненужного копирования. это особенно актуально если у вас нагруженное приложение.
0
|
||
|
118 / 86 / 35
Регистрация: 07.11.2022
Сообщений: 355
|
|||
| 01.12.2022, 22:58 | |||
|
получил UB Если вас это устраивает, ну ОК .
0
|
|||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||||||
| 01.12.2022, 23:04 | ||||||
|
Взял strcpy() и получил UB. Прикинь. Все ложь
![]()
1
|
||||||
|
Just Do It!
|
|||||||
| 01.12.2022, 23:12 | |||||||
|
NEED-A-JOB, я из любой функции смогу получить UB. вы испортили содержимое и продолжаете ссылаться на него. очевидно, что в вашем случае нужно так:
0
|
|||||||
|
118 / 86 / 35
Регистрация: 07.11.2022
Сообщений: 355
|
|||
| 02.12.2022, 12:52 | |||
|
по мне, такое поведение необычно. Добавлено через 36 секунд не могу выразить самостоятельно , но нашел подходящее вот товарищ написал https://stackoverflow.com/ques... o%20teach. Добавлено через 32 секунды -------------------
0
|
|||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||
| 02.12.2022, 13:12 | ||
|
NEED-A-JOB, не согласен с приведенной цитатой.
Взять хотя бы итераторы, это тоже ссылочные объекты. И тоже часто-густо становятся невалидными. В классах с итераторами, описаны методы после которых те или иные итераторы становятся невалидными. То есть UB. И это не какая-то экзотика. Не нравится string_view ? Есть старые добрые указатели. Есть std::ref. С ними все тоже самое. Добавлено через 8 минут Теперь к практике по строкам. Дан текст, большого объема (книга, сборник томов). И задачи на его анализ. Нам не нужно его изменять (можно считать текст константным).
0
|
||
|
118 / 86 / 35
Регистрация: 07.11.2022
Сообщений: 355
|
||
| 02.12.2022, 14:04 | ||
|
обращаемся к вектору. через указатели, итераторы. мы обращаемся к конкретному вектору. не к другому экземпляру вектора, а к одному вектору через итератор. мы нацелены на конкретный вектор, через другие объекты. если ломается итератор при изменении вектора- это ожидаемое поведение. А вот если ломается вектор, при изменении ДРУГОГО вектора, то это какое-то чудо расчудесное. трудно такое воспринимается....
0
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
||||
| 02.12.2022, 14:48 | ||||
|
Так где же ломается строка при использовании string_view ? Это при изменении исходной строки , string_view становится невалидным, так же как и указатели. NEED-A-JOB, не понимаю вашей логики. Скорее всего, вы просто ушли в отрицание. Добавлено через 1 минуту Прям один в один. Вот вы сами все и доказали. ![]() Добавлено через 5 минут итератор -> string_view
0
|
||||
|
Гвоздь Задиров
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
|
|||||||
| 02.12.2022, 14:55 | |||||||
|
Не придёт ж в здравом уме никому делать чонить такое?
1
|
|||||||
|
|
|||||||
| 02.12.2022, 14:57 | |||||||
если меняется строка - string_view на неё ломается почему одно для вас ожидаемо, а второе неожиданно? Почему для вас случаи не аналогичны?
1
|
|||||||
|
118 / 86 / 35
Регистрация: 07.11.2022
Сообщений: 355
|
|
| 02.12.2022, 15:34 | |
|
0
|
|
| 02.12.2022, 15:34 | |
|
Помогаю со студенческими работами здесь
18
Функция, которая убирает пробелы в начале и в конце строки В строке символов удалить все пробелы в начале и в конце строки, удвоить пробелы в середине строки и напечатать количество слов Удалить повторяющиеся пробелы, также пробелы в начале и в конце строки (ассемблерная вставка) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
BOINC: 22 года — и всё ещё работает
Programma_Boinc 12.03.2026
BOINC: 22 года — и всё ещё работает
Дэвид Андерсон написал ретроспективу. Кратко: в 2001 году он ушёл из United Devices, где был CTO, и за несколько месяцев написал ядро BOINC — клиент, сервер,. . .
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|