Функция strcpy, wcscpy и _mbscpy

Функция strcpy копирует все символы указанной строки (включая символ конца строки ('\0')) в начало другой строки.

Синтаксис

char *strcpy(
   char *strDestination,
   const char *strSource 
);
wchar_t *wcscpy(
   wchar_t *strDestination,
   const wchar_t *strSource 
);
unsigned char *_mbscpy(
   unsigned char *strDestination,
   const unsigned char *strSource 
);

Параметры

s1

Указатель на строку, являющуюся выходным значением.

s2

Указатель на исходную строку с нулевым символом в конце.

Возвращаемое значение

Возвращает указатель на символьную строку s1.

Замечания

Если при копировании область памяти, указанная параметром s1 перекрывается областью памяти, указанной s2, то поведение функции не определено.

Смотри также

Библиотека стандартных функций С.

Функция объявлена в заголовочном файле string.h

 

Назад в оглавление
На главную страницу
В оглавление справки
Переведено 15.09.2009 19:56 ©Copyright V. Sokovikov

Дополнительная информация

Функция strcpy, wcscpy, _mbscpy


Копирует строку.

Синтаксис

char *strcpy(
   char *strDestination,
   const char *strSource 
);
wchar_t *wcscpy(
   wchar_t *strDestination,
   const wchar_t *strSource 
);
unsigned char *_mbscpy(
   unsigned char *strDestination,
   const unsigned char *strSource 
);

Параметры

strDestination

Строка, являющаяся выходным значением.

strSource

Исходная строка с нулевым символом в конце.

Возвращаемое значение

Каждая из этих функций возвращает строку, являющуюся выходным значением. Возвращаемых значений, указывающих на ошибку, нет.

Замечания

Функция strcpy копирует строку,указанную параметром strSource, включая символ завершающего нуля, в место, указанное параметром strDestination. Поведение strcpy не определяется, если источниковая и являющаяся выходным значением строки накладываются друг на друга.

Предупреждение по безопасности Поскольку функция strcpy не проверяет достаточно ли места в строковом массиве, указанном strDestination прежде, чем скопировать туда strSource, это - потенциальная причина переполнения буфера. Рассмотрите лучше использование функции strncpy вместо этой.

Функции wcscpy и _mbscpy - широкосимвольные и многобайтово-символьные версии strcpy. Параметры и возвращаемое значение wcscpy - широкосимвольные строки; а _mbscpy являются многобайтово-символьными строками. В противном случае эти три функции ведут себя тождественно.

Унифицированно-текстовые стандартные отображения

процедураTCHAR.H

_UNICODE & _MBCS не определяется

определяется как _MBCS

определяется как _UNICODE

_tcscpy strcpy _mbscpy wcscpy

Требования

Процедура Требуемый заголовочный файл Совместимость
strcpy <string.h> ANSI, Win 98, Win Me, Win NT, Win 2000, Win XP
wcscpy <string.h> or <wchar.h> ANSI, Win 98, Win Me, Win NT, Win 2000, Win XP
_mbscpy <mbstring.h> Win 98, Win Me, Win NT, Win 2000, Win XP

Дополнительную информацию о совместимости, см. в разделе Совместимость в статье Введение.

Библиотеки

Все версии библиотек исполняющей системы C.

Пример

// crt_strcpy.c
/* Эта программа использует strcpy
 * и strcat, чтобы построить фразу
 */

#include <string.h>
#include <stdio.h>

int main( void )
{
   char string[80];
 // Обратите внимание! на то, что если Вы изменяете предыдущую строку на
 // char string[20]; функции
 // strcpy и strcat соответствующим образом  переполнят
 // строковый буфер. См. примеры для функций strncpy и strncat
 // для более безопасной обработки строк.
   strcpy( string, "Hello world from " );
   strcat( string, "strcpy " );
   strcat( string, "and " );
   strcat( string, "strcat!" );
   printf( "String = %s\n", string );
}
 

Вывод данных

String = Hello world from strcpy and strcat!

См. Также

Процедуры управления строками | strcat | strcmp | strncat | strncmp | strncpy | _strnicmp | strrchr | strspn | Процедуры реального времени и Эквиваленты .NET Framework

Hosted by uCoz