C의 strcpy
소개:
strcpy는 한 위치에서 다른 위치로 문자열을 복사하는 C 표준 라이브러리 함수입니다. string.h 헤더 파일에 정의되어 있습니다.
이 함수는 두 개의 인수, 즉 복사된 문자열이 저장될 대상 버퍼와 복사될 소스 문자열을 사용합니다. 이 함수는 null 종결자를 포함한 전체 소스 문자열을 대상 버퍼에 복사합니다.
그만큼 C strcpy() 기능 사본 문자열의 내용을 다른 문자열로 전달합니다. 대상 문자열의 내용은 다음과 같습니다. 교체됨 strcpy() 함수를 통해 소스 문자열의 문자열과 일치합니다. 내부에 정의되어 있습니다. 헤더 파일.
통사론:
char* strcpy(char* destination, const char* source);
매개변수: 이 메서드는 다음 매개변수를 허용합니다.
- 목적지 : 콘텐츠가 복사될 대상 문자 배열에 대한 포인터입니다. source: 복사할 소스 문자 배열에 대한 포인터입니다.
반환 값: ㅏ 목적지에 대한 포인터 string은 strcpy() 함수가 소스 문자열을 복사한 후에 반환됩니다.
예: 1
씨
// C program to illustrate> // strcpy() function in C> #include> #include> int> main()> {> > char> str1[] => 'Hello World!'> ;> > char> str2[] => 'GfG'> ;> > char> str3[40];> > char> str4[40];> > char> str5[] => 'GeeksForGeeks'> ;> > strcpy> (str2, str1);> > strcpy> (str3,> 'Copy successful'> );> > strcpy> (str4, str5);> > printf> (> 'str1: %s
str2: %s
str3: %s
str4:%s
'> , str1,> > str2, str3, str4);> > return> 0;> }> |
산출
str1: Hello World! str2: Hello World! str3: Copy successful str4:GeeksForGeeks
예 2:
씨
#include> #include> int> main()> {> > char> str1[20] => 'Hello'> ;> > char> str2[20];> > strcpy> (str2, str1);> > printf> (> 'str1: %s
'> , str1);> > printf> (> 'str2: %s
'> , str2);> > return> 0;> }> |
산출
str1: Hello str2: Hello
중요사항
- 이 기능을 사용하면 전체 문자열을 대상 문자열에 복사할 수 있습니다. 소스 문자열은 대상 문자열에 추가되지 않습니다. 결과적으로 대상 문자열의 내용이 소스 문자열의 내용으로 대체됩니다.
- 소스 문자열은 영향을 받지 않습니다. 복사한 후에도 소스 문자열은 동일하게 유지됩니다.
- strcpy()를 사용하려면 문자열.h 헤더 파일이 포함되어야 합니다.
- 더 긴 소스 문자열(문자 배열)의 경우 strcpy()는 정의되지 않은 동작을 수행합니다.
장점과 단점:
C에서 strcpy를 사용하면 다음과 같은 장점이 있습니다.
문자열을 빠르고 쉽게 복사할 수 있는 간단하고 사용하기 쉬운 기능입니다.
이는 표준 라이브러리 함수이므로 다양한 플랫폼과 컴파일러에서 널리 사용 가능하고 이식 가능합니다.
복사하려면 소스 문자열을 한 번만 통과하면 되기 때문에 상대적으로 빠릅니다.
그러나 strcpy를 사용할 때 고려해야 할 몇 가지 단점도 있습니다.
대상 버퍼의 크기를 확인하지 않으므로 소스 문자열이 대상 버퍼보다 길면 버퍼를 덮어쓰고 버퍼 오버플로가 발생할 수 있습니다. 이로 인해 보안 취약점 및 기타 문제가 발생할 수 있습니다.
겹치는 문자열을 제대로 처리하지 않습니다. 소스 및 대상 문자열이 겹치는 경우 strcpy의 동작은 정의되지 않습니다.
소스 문자열 내의 널 문자를 올바르게 처리하지 않습니다. 소스 문자열에 널 문자가 포함되어 있으면 소스 문자열에 추가 문자가 있더라도 strcpy는 해당 지점에서 복사를 중지합니다.