|
0 / 0 / 0
Регистрация: 09.03.2020
Сообщений: 25
|
|
Найти длину строки, без использования функции strlen()02.04.2020, 13:50. Показов 20100. Ответов 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
|
||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||||
| 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
|
|
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
|
| 03.04.2020, 01:16 | |
|
Argus19, резюмируя: в VS 2010 (которая опирается на стандарты С++98/03) использовать код, который смотрит за конец строки std::string без использования константной версии operator[], запрещено. Именно этот запрет проверяет assert внутри неконстантной версии operator[] (который у вас перехватывается средой в качестве SEH-исключения). Верный вариант представлен в #19.
1
|
|
|
|
|||||||
| 03.04.2020, 01:34 | |||||||
1
|
|||||||
|
19501 / 10106 / 2461
Регистрация: 30.01.2014
Сообщений: 17,825
|
||||
| 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 возникает ошибка
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла:
Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
|
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет
Новости компьютерного мира и их обсуждение (4)
Салют, шампанское, овации!
:drink:
|
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр.
Дословно, отклонённая. . .
|
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы
Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
|
|
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
|
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2.
Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
|
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
|
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
|