반응형
stpcpy(3)
#include <string.h>
char *stpcpy(char *dest, const char *src);
stpcpy(3)함수는 src문자열을 dest에 복사하고 문자열의 끝 다음인 0x00의 위치에 대한 pointer를 return합니다.
즉, dest + strlen(src)를 return합니다. dest는 src 문자열을 저장할 충분한 공간이 있어야 합니다. 또한 문자열이 overlap되지 않도록 하여야 합니다.
stpcpy(3)함수는 strcpy(3)함수와 비슷한 기능을 합니다. 차이점은 strcpy(3)는 복사된 dest의 시작 위치를 return하고
이 함수는 복사된 dest 문자열의 끝 위치를 return합니다.
따라서, 이 함수는 계속 추가로 복사하는 strcat(3)를 대신해서 사용하기에 편리합니다. strcat(3)은 문자열을 추가하기 위하여 처음부터 문자열의 끝까지 찾아야 하지만, 이 함수를 이용하면 return값에 대해서 계속 copy를 하면 되기 때문에 성능면에서 유리합니다.
파라미터
dest
- 데이터가 복제될 buffer
src
- dest 뒤에 추가할 데이터 원본 문자열
RETURN
dest + strlen(src)
- 문자열의 끝에 있는 0x00의 위치에 대한 pointer
활용 예제
#include <string.h>
#include <stdio.h>
int main(void)
{
char buffer[20];
char *to = buffer;
to = stpcpy(to, "foo");
to = stpcpy(to, "bar");
printf("%s\n", buffer);
}
결과
foobar
반응형
'C언어 header > string.h' 카테고리의 다른 글
strlen(3) - 문자열의 길이를 구하는 함수 (0) | 2019.12.20 |
---|---|
stpncpy(3) - 문자열을 n바이트 복사후에 문자열의 끝위치 return (0) | 2019.09.25 |
strerror_r(3) - 오류번호를 오류 메세지로 (0) | 2019.09.25 |
strerror(3) - 오류번호를 오류 메세지로 (0) | 2019.09.25 |
strsep(3) - 문자열을 delimiter 단위로 분리 (0) | 2019.09.25 |