|
0 / 0 / 0
Регистрация: 09.03.2020
Сообщений: 25
|
|
Найти длину строки, без использования функции strlen()02.04.2020, 13:50. Показов 20070. Ответов 115
Метки нет (Все метки)
Написать функцию, которая получает строку и возвращает длину строки. Без использования функции strlen ()
0
|
|
| 02.04.2020, 13:50 | |
|
Ответы с готовыми решениями:
115
Написать программу, которая определяет длину строки - strlen (число символов без завершающего нуль-символа)
|
|
Вездепух
13210 / 6843 / 1824
Регистрация: 18.10.2014
Сообщений: 17,308
|
||||||
| 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,308
|
||
| 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,308
|
||
| 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,308
|
|||
| 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,308
|
|||
| 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 возникает ошибка
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Расчёт периметра прямоугольника по координатам вершин
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Вычислить периметр прямоугольника, заданного координатами своих вершин на плоскости.
Решение:
Создан документ со следующими. . .
|
Подсчёт частоты трёхбуквенных слов в тексте
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Выясните, сколько раз в предложенном тексте встречается каждое трехбуквенное слово.
Решение:
Создан документ с единственным. . .
|
Сумма и количество положительных элементов в чётных строках массива
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Вычислить сумму и количество положительных элементов массива, расположенных в четных строках.
Решение:
Создан документ с. . .
|
Поиск произведения положительных чётных чисел в последовательности
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Дана произвольная последовательность целых чисел. Найти произведение положительных четных чисел данной последовательности.
. . .
|
|
Обработка трёх чисел: утроение и возведение в степень
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Даны три действительных числа. Утроить те из них, значения которых неотрицательны, и возвести в четвертую степень отрицательные.
. . .
|
Расчёт стоимости яблок по весу
Maks 18.07.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Написать программу вычисления стоимости некоторого количества (по весу) яблок.
Решение:
Создан документ, с табличной частью. . .
|
сукцессия 30. Фосфорный и азотный замки по "честному" закону лимитирования Либиха
anaschu 16.07.2026
Основные достижения за последние дни
1. Механизм отложенного высвобождения фосфора
Добавлен специальный пул для медленного разложения меланизированных гиф ЕСМ
Реализована разная скорость. . .
|
Запрет пометки на удаление и отмены проведения
Maks 16.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "ПутевойЛист" разработанного в КА2.
Задача: запретить помечать на удаление и отменять проведения путевого листа при условии, если он сдан. . .
|