|
0 / 0 / 0
Регистрация: 09.03.2020
Сообщений: 25
|
|
Найти длину строки, без использования функции strlen()02.04.2020, 13:50. Показов 20135. Ответов 115
Метки нет (Все метки)
Написать функцию, которая получает строку и возвращает длину строки. Без использования функции strlen ()
0
|
|
| 02.04.2020, 13:50 | |
|
Ответы с готовыми решениями:
115
Написать программу, которая определяет длину строки - strlen (число символов без завершающего нуль-символа)
|
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,312
|
||||||
| 02.04.2020, 23:24 | ||||||
std::string руками, то завершающим символом строки будет символ \0. А вы почему-то взялись проверять на string::npos, который тут совершенно ни к месту.--- std::string уже давно допускает указание индекса size() и гарантирует возврат \0. Поэтому в "дебаге" проверяется, что индекс меньше либо равен size().
0
|
||||||
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
|
||||||
| 02.04.2020, 23:25 | ||||||
1
|
||||||
|
Комп_Оратор)
|
|||||||||||||
| 02.04.2020, 23:29 | |||||||||||||
1
|
|||||||||||||
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,312
|
||
| 02.04.2020, 23:32 | ||
operator [] с индексом size() для константной версии оператора. То есть если параметр объявлен как const std::string или const std::string &, то выхода за пределы не происходит даже в C++98.P.P.S. Кстати, пример того, как "ничего не значащий" const на объявлении параметра может (мог) иметь серьезные последствия с точки зрения функциональности кода.
2
|
||
|
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,828
|
||||
| 02.04.2020, 23:37 | ||||
|
Добавлено через 1 минуту
1
|
||||
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,312
|
||
| 02.04.2020, 23:40 | ||
|
0
|
||
|
Комп_Оратор)
|
||
| 02.04.2020, 23:53 | ||
|
0
|
||
|
|
|||||||
| 03.04.2020, 00:00 | |||||||
|
IGPIGP,
0
|
|||||||
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,312
|
|||
| 03.04.2020, 00:12 | |||
p. --- Бесполезно показывать скриншоты ошибок, не показывая кода, который вы исполняли и настроек компилятора, который вы использовали. Как я сказал выше, такая ошибка возможна в "старинном" языке С++, но для этого нужно специально постараться использовать именно его. --- Мне более интересно было бы увидеть ваше
1
|
|||
|
|
||||
| 03.04.2020, 00:27 | ||||
![]() Добавлено через 13 минут
0
|
||||
|
Комп_Оратор)
|
|||
| 03.04.2020, 00:35 | |||
|
Argus19, вот тут: А итерация на нём и заканчивается. А пост инкремент догоняет (он неумолим) и прибавляет ещё единицу -см. пояснение от TheCalligrapher. Остальное логично. Если бы он последний раз не инкрементировался то указывал бы за последний символ и разница давала бы точно то, что нужно. Если разрушить понт с while без тела (Чеширский while - люблю его ) то в теле можно проверить а потом или break или инкрементировать дальше (тут же в теле). Тогда в условии придётся оставить true или 1. Это вам для раздумий)
1
|
|||
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,312
|
|||
| 03.04.2020, 00:40 | |||
|
Не по теме:
Добавлено через 2 минуты std::cout << "*";) то увидите, что количество итераций цикла всегда строго равно длине строки. То есть никакой "лишней итерации" цикл не делает.
0
|
|||
| 03.04.2020, 00:57 | |
|
0
|
|
| 03.04.2020, 01:13 | |
|
0
|
|
|
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,828
|
|
| 03.04.2020, 01:16 | |
|
Argus19, резюмируя: в VS 2010 (которая опирается на стандарты С++98/03) использовать код, который смотрит за конец строки std::string без использования константной версии operator[], запрещено. Именно этот запрет проверяет assert внутри неконстантной версии operator[] (который у вас перехватывается средой в качестве SEH-исключения). Верный вариант представлен в #19.
1
|
|
|
|
|||||||
| 03.04.2020, 01:34 | |||||||
1
|
|||||||
|
19505 / 10108 / 2463
Регистрация: 30.01.2014
Сообщений: 17,828
|
||||
| 03.04.2020, 01:49 | ||||
|
Вот случаи, помеченные как until C++11 (т.е. до C++11)
Всем новичкам нужно вырабатывать навыки чтения документации, это первостепенная вещь.
0
|
||||
|
Комп_Оратор)
|
||
| 03.04.2020, 02:02 | ||
![]() Argus19, count и counter по коду идентичны. Какой-то - не жилец, похоже) А вообще, литература годная, бутявки (не кузявые) должны разбежаться, спрятаться и выжить, имхо)
0
|
||
| 03.04.2020, 02:02 | |
|
При попытке вычислить длину строки стандартной функцией strlen возникает ошибка
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302
Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
|