반응형

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
반응형
블로그 이미지

자연&사람

행복한 개발자 programmer since 1995.

,