반응형
strncat(3)
#include <string.h>
char *strncat(char *dest, const char *src, size_t n);
dest문자열에 n바이트의 src 문자열을 붙입니다. 만약 src 문자열의 길이가 n보다 작으면 src문자열끝까지만 붙입니다.
strncpy(3)는 항상 null-terminate를 보장하는 함수입니다. dest변수는 문자열을 붙이기에 충분한 buffer를 확보해야 합니다.
※ 주의: strncat(3)은 buffer overflow 발생을 유발할 수 있으므로 일반적으로 프로젝트에서는 금지함수로 지정하는 경우가 많습니다.
※ 주의: 일부 UNIX에서는 src가 NULL이면 ""와 같은 효과가 있으나, 최신 LINUX에서는 SEGSEGV오류가 발생하여 비정상 종료됩니다.
이 경우에는 LINUX에서는 strncat(dest, src == NULL ? "" : src, n)로 표현하거나 src가 배열이면 오류가 발생하지 않습니다.
파라미터
dest
- dest문자열의 뒤에 src문자열을 붙일 buffer.
src
- dest 문자열의 끝에 붙일 문자열
n
- dest에 추가할 바이트 수.
- n 바이트를 붙이기 전에 src문자열이 0x00을 만나 문자열이 끝나면 0x00까지 붙이고 중단합니다.
RETURN
dest
- dest를 return합니다.
활용 예제
#include <string.h>
#include <stdio.h>
int main(int argc, char **argv)
{
char dest[1024] = "12345";
strncat(dest, "abcd", 2);
printf("dest = %s\n", dest);
return 0;
}
결과:
dest = 12345ab
반응형
'C언어 header > string.h' 카테고리의 다른 글
strncmp(3) - 문자열을 n바이트까지 문자열 비교 (0) | 2019.09.25 |
---|---|
strcmp(3) - 문자열 끝까지 비교 (0) | 2019.09.25 |
strcat(3) - 문자열을 뒤에 붙이기 (0) | 2019.09.25 |
strncpy(3) - 문자열 n바이트 복사하기 (0) | 2019.09.25 |
strcpy(3) - 문자열끝까지 복사하기 (0) | 2019.09.25 |