|
Замечание. Функция strdup() резервирует память для копии при помощи вызова функции malloc(sizet), поэтому программист должен освободить эту память вызовом функции free(void*). Функции malloc() и free() составляют пару подобно операциям new и delete.
Например, чтобы присвоить строке р строку а, можно воспользоваться функциями strcpy или strncpy:
Для использования этих функций к программе следует подключить заголовочный файл <string.h>.
Функция strcpy (р, а) копирует все символы строки, указанной вторым параметром (а), включая завершающий 0, в строку, указанную первым параметром (р).
Функция strncpy (р, а, n) выполняет то же самое, но не более п символов, то есть числа символов, указанного третьим параметром. Если нуль-символ в исходной строке встретится раньше, копирование прекращается, а оставшиеся до п символы строки. Р заполняются нуль-символами. В противном случае (если п меньше или равно длине строки а) завершающий нуль-символ в р не добавляется. Обе эти функции возвращают указатель на результирующую строку. Если области памяти, занимаемые строкой-назначением и строкой-источником, перекрываются, поведение программы не определено.
Функция strlen(a) возвращает фактическую длину строки а, не включая нуль-символ. Программист должен сам заботиться о том, чтобы в строке-приемнике хватило места для строки-источника (в данном случае при выделении памяти значение переменной m должно быть больше или равно 100), и о том, чтобы строка всегда имела завершающий нуль-символ.
Дата добавления: 2015-07-19; просмотров: 55 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Ввод-вывод строк | | | Преобразование строки в целое число |