Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 5.00/15: Рейтинг темы: голосов - 15, средняя оценка - 5.00
 Аватар для anti-k
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774

Как работает strncpy()?

06.10.2015, 07:38. Показов 3852. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include<iostream>
#include<cstring>
using namespace std;
char*input(char*word,int&size){
    cin.getline(word,size);
    size=strlen(word);
    char*ch=new char[size];
    strncpy(ch,word,size);
    delete[]word;
    return ch;
}
int main(){
    int n=100;
    char*ch=new char[n];
    ch=input(ch,n);
    int k=n;
    char*che=new char[k];
    che=input(che,k);
    cout<<"\n"<<ch;
    cout<<"\n"<<che<<endl;
    char*ptr=strstr(ch,che);
    cout<<*ptr;
    return 0;
}
выдает что то такое
Миниатюры
Как работает strncpy()?  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.10.2015, 07:38
Ответы с готовыми решениями:

Функция strncpy не работает на строках длинее трех символов
Подскажите, написал код... Хочу копировать каждое слово в g (т.е. s3). Функцией strncpy. Длину находит правильную, но при копировании...

Не работает strncpy в MV
Не работает strncpy в Micrisoft Visual Задача следущая: Нужно Преобразовать суму к прописному текстовому виду, например 2141 — Две...

Strncpy
Напишите пожауйста на С аналог функции Strncpy

25
1373 / 596 / 199
Регистрация: 02.08.2011
Сообщений: 2,886
06.10.2015, 10:19
Студворк — интернет-сервис помощи студентам
C++
1
2
int k=n;
    char*che=new char[k+1];
В самом начале. в main

Добавлено через 44 минуты
C++
1
 if (ptr) cout<<*ptr<<" "<<k<<endl;  //еще
0
06.10.2015, 15:22

Не по теме:

Toshkarik, я был неправ. Что-то переклинило

0
 Аватар для Toshkarik
1181 / 894 / 94
Регистрация: 03.08.2011
Сообщений: 2,461
06.10.2015, 23:42
Лучший ответ Сообщение было отмечено anti-k как решение

Решение

anti-k, извиняюсь, не увидел Ваши последние вопросы.
Цитата Сообщение от anti-k Посмотреть сообщение
почему не size+1???
Смотрите. В Вашем примере размер строки == 19. Ее можно рассматривать как массив с индексами от 0 до 18. При записи в ch+size, получается, что Вы пишите в ячейку с индексом 19, которой нет у строки. При выделении памяти size + 1 она появляется. Если бы Вы хотели записать в ch+size+1, то это была бы ячейка с индексом 20, которой, опять же, нет у стройки. Смысл в выделении size+1 памяти в том, что бы хватило на последний терминальный символ.
Цитата Сообщение от anti-k Посмотреть сообщение
Toshkarik, в случае если я ввожу больше 10, меня выбрасывает из программы((
Берутся первые 9 символов из потока и 1 терминальный символ конца строки и записываются в строку ch. Но в потоке еще остались символы, Вы ведь ввели больше 9 символов. Значит, что для второй строки ( che ) уже есть данные, и они туда записываются. Далее, идет вызов функции strstr. Я почти уверен, что она возвращает 0.
1
 Аватар для anti-k
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
11.10.2015, 06:41  [ТС]
Toshkarik, Спасибо!!!
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
11.10.2015, 13:07
По поводу strncpy и рядом лежащих функций рекомендую почитать тут: Распространенные ошибки
1
 Аватар для anti-k
227 / 75 / 31
Регистрация: 17.07.2015
Сообщений: 774
11.10.2015, 14:36  [ТС]
Evg, Огромное спасибо!!!

Добавлено через 8 минут
Evg, Не могли бы вы посмотреть этот пост Работа atoi и itoa ??
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.10.2015, 14:36

strncpy
Дана строка: djh,dfkh,sdj. Как последовательно по отдельности записать в strncpy текстовые части: djh dfkh sdj

с++ strncpy
Скажите пожалуйста, я не могу разобраться с фунуциями strncpy() и с её подобными. везде одна ошибка. Вот у меня тема следующая: char...

Strncpy
Одинаково неправильно работают следующие 2 кода: #include &lt;stdio.h&gt; #include &lt;string.h&gt; int main(void) { int n; char s1 =...

про strncpy ()
привет=))) вот чето с этой функцией не пойму пример есть #include &lt;iostream&gt; using namespacr std; int main () { const int...

Функция strncpy
Вопрос: Есть строка s, в этой строке есть элемент '\n' от которого мне нужно избиваться. Я хочу просто скопировать в другую строчку без...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Алиса нашла кучу ошибок компиляции и запуска в проекте, который без проблем компилировался и запускался)))
anaschu 30.06.2026
Я пока посмеюся, но завтра проверю. А вообще интерсно. Дал алисе файл, в котором точно нет ошибок компиляции и запуска, и попросил их найти. Нашла кучу))) Критические ошибки, мешающие компиляции и. . .
сукцессия 16. Общий обзор, в основном что бы другие ии поняли
anaschu 29.06.2026
# Передаточный документ: модель микоризной сукцессии (для нового чата) Этот документ предназначен для того, чтобы новый чат Claude мог продолжить работу без необходимости заново разбираться в. . .
сукцессия 15 неявная схема
anaschu 29.06.2026
Алиса Калибровка параметров симбиотической модели: технический обзор Содержание: Введение Постановка проблемы Технические аспекты реализации Процесс внедрения изменений
сукцессия 14. Обновленная схема модели
anaschu 28.06.2026
ГЛОБАЛЬНАЯ ОПИСАТЕЛЬНАЯ СПЕЦИФИКАЦИЯ ЭКОСИСТЕМНОЙ МОДЕЛИ «SOIL CHEMISTRY & MYCORRHIZA 2. 0» https:/ / ibb. co/ NnkGpfMd Представленная интегрированная схема описывает непрерывную нелинейную. . .
сукцессия 13. Питон модель трехзонного мицелия, пока что в основном арбускулярного
anaschu 28.06.2026
## Разработка агентной модели микоризной сукцессии: от выявления артефактов к созданию комплексной системы ### Аннотация Представлено исследование по разработке агентной модели микоризной. . .
сукцессия 12. краткий список проверок модели перед запуском.
anaschu 27.06.2026
Скрытые отказы в моделях систем динамики (SD-models) экологических систем: два случая из практики Контекст Разбирался прототип модели систем динамики (SD-модели) микоризной сукцессии: пять. . .
Сукцессия 11. Проверка орудий перед войной: разработка через тестирование
anaschu 27.06.2026
Как не дать модели соврать самой себе: проверки для симуляции микоризной сукцессии Введение Когда вы строите математическую модель живой системы — грибов, растений, почвы — главная опасность. . .
10 сукцессия. Питон код войны грибов и растений
anaschu 27.06.2026
import numpy as np class PlantAgent: def __init__(self, name, strategy, initial_biomass): self. name = name self. strategy = strategy # "greedy" (широколиственные) или. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru