strncpy() функция языка Си. Копирование строки с ограничением длины.

Функция strncpy() производит копирование строки (включая завершающий строку нулевой символ) в другую строку с ограничением длины копируемой строки.


#include <string.h> // strcpy()
char *strncpy (char *dst, const char *src, size_t n);
dst - Буфер куда копируется строка, должен быть создан размером, как минимум n + 1
src - Копируемая строка
n - Максимальное количество копируемых символов - либо до нулевого символа завершения строки
Возвращает указатель на dst

Когда строка dst была инициализирована строкой (не нулями), но была достаточной длины - наблюдался вылет программы с ошибкой сегментации..


#include <stdio.h> // printf()
#include <string.h> // strncpy()
int main(){
    char dst[50] = {0}; // Строка для приема текста инициализирована нулями
    const char *src = "Hi Victor!"; // Строка для копирования
    strncpy(dst, src, 6); // Копируем содержимое src в dst с ограничением в 6 копируемых символов
    printf("%s \n", dst); // "Hi Vic" Cкопировано 6 символов
    strncpy(dst, src, 50); // Копируем содержимое src в dst с ограничением в 50 копируемых символов
    printf("%s \n", dst); // "Hi Victor!" Cкопировано до завершающего нуля в src
}
Вывод программы:
Hi Vic 
Hi Victor! 
2023-03-15



Понравилась страница?
Добавить в закладки
Или поделиться!

Связанные темы

atof() функция языка Си. Преобразует строку во float.
atoi() функция языка Си. Преобразует строку в int.
atoll() функция языка Си. Преобразует строку в long long.
sprintf_s() функция языка Си. Преобразование типа в строку.
strcat() функция языка Си. Сложение (конкатенация) строк.
strchr() функция языка Си. Поиск символа в строке.
strcpy() функция языка Си. Копирование строки.
strdup() функция языка Си. Копирование строки с выделением памяти.
Строки в Си. Основные функции.
strlen() функция языка Си. Определение длины строки.
strncat() функция языка Си. Объединение двух строк с ограничением длины.
strncpy() функция языка Си. Копирование строки с ограничением длины.
strstr() функция языка Си. Нахождение подстроки в строке.
strtod() функция языка Си. Преобразование строки в double.