|
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
|
||||||
Как работает strncpy()?06.10.2015, 07:38. Показов 3621. Ответов 25
Метки нет (Все метки)
0
|
||||||
| 06.10.2015, 07:38 | |
|
Ответы с готовыми решениями:
25
Функция strncpy не работает на строках длинее трех символов Не работает strncpy в MV Strncpy |
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
| 06.10.2015, 07:57 | |
|
Если длина строки-источника ( src ) меньше size, то последние size - strlen( src ) символов строки-приемника ( dst ) заполняются нулями. Если длина строки-источника ( src ) равна или больше size, то, само собой, в конце строки-приемника ( dst ) нуля не будет и за этим придется следить самому.
1
|
|
|
Фрилансер
3709 / 2082 / 567
Регистрация: 31.05.2009
Сообщений: 6,683
|
||
| 06.10.2015, 08:03 | ||
|
0
|
||
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
| 06.10.2015, 08:06 | |
|
Не помню точно, где я про это читал, но нашел тоже самое в первой ссылке google https://ru.wikipedia.org/wiki/Strncpy
1
|
|
|
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
|
|
| 06.10.2015, 08:07 [ТС] | |
|
Toshkarik, Немного непонятно (. n==100 при вызове инпута, затем оно меняется на strlen()(она как я понимаю возвращает результат с '\0'), где взялись остальные символы, в случае на картинке OWS
0
|
|
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
| 06.10.2015, 08:22 | |
Сообщение было отмечено anti-k как решение
Решение
Строка ch, которая создается в функции input имеет размер равный строке word после ввода. Известно, что размер строки не включает в себя символ конца строки ( ноль ). При копирование с помощью strncpy, size == strlen( word ). Собственно, поэтому и нет в конце терминального символа. Чисто случайно оказалось, что ноль был расположен после OWS. OWS в свою очередь является или мусором или данными, не имеющими никакого отношения к этой строке.
1
|
|
|
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
|
||||||
| 06.10.2015, 08:43 [ТС] | ||||||
|
Toshkarik, Исправил в соответствии с вашим рекомендациями, гляньте пожалуйста, вроде работает
0
|
||||||
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|||||||
| 06.10.2015, 08:51 | |||||||
Сообщение было отмечено anti-k как решение
РешениеИсправьте только здесь:
1
|
|||||||
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
|
|
| 06.10.2015, 08:52 | |
|
В данном случае так-то оно так.
Но Википедия очень ненадежный источник подобной технической информации.
0
|
|
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
||
| 06.10.2015, 08:55 | ||
|
0
|
||
|
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
|
|||||||||||
| 06.10.2015, 08:59 [ТС] | |||||||||||
|
Toshkarik, если
то есть strncpy добавит последний 0 сама?
0
|
|||||||||||
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
|
|
| 06.10.2015, 09:00 | |
|
да можно вот эту было дать
https://www.cplusplus.com/refe... kw=strncpy
1
|
|
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
| 06.10.2015, 09:02 | |
|
1
|
|
|
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
|
||
| 06.10.2015, 09:09 | ||
|
Не по теме:
anti-k, еще delete []
0
|
||
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
||
| 06.10.2015, 09:12 | ||
|
1
|
||
|
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
|
|
| 06.10.2015, 09:13 [ТС] | |
|
Toshkarik, а как можно обеспечить защиту от выхода за пределы массива, в случае использования cin.getline(ch,10) и ввода с клавиатуры 10 и более значений?
0
|
|
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
|
| 06.10.2015, 09:15 | |
|
anti-k, так cin.getline() при передаче ей вторым параметром числа 10 и не запишет больше 10 символов в строку ch.
0
|
|
|
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
|
||||||||||||||||
| 06.10.2015, 09:24 [ТС] | ||||||||||||||||
|
Toshkarik, в случае если я ввожу больше 10, меня выбрасывает из программы((
и еще
0
|
||||||||||||||||
| 06.10.2015, 09:24 | ||
|
Не по теме:
одно дело: "Как оно работает". по-моему вообще никогда не стоит давать первое попавшееся. А только достоверное. другое дело: "Как можно прокодить". тут уже можно давать первое попавшееся, но с небольшой оглядкой, пусть даже на собственный опыт.
0
|
||
|
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
|
||
| 06.10.2015, 09:31 | ||
|
Не по теме: Одно дело, если бы там действительно была недостоверная информация. Но, перед тем, как дать ссылку, я ее, конечно же, посмотрел. И написанное там совпало с моими знаниями. Поэтому мне до сих пор не понятна цель данной дискуссии. Если на странице вполне достоверная информация с нормальным изложением, я и буду предоставлять на нее ссылку. При этом не важно, вики это или cplusplus.
2
|
||
| 06.10.2015, 09:31 | |
|
Помогаю со студенческими работами здесь
20
strncpy с++ strncpy
про strncpy () Функция strncpy Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|