개인노트

[C언어] strcat_s, strncat_s 함수 - 문자열을 붙이는 함수 본문

C/문법

[C언어] strcat_s, strncat_s 함수 - 문자열을 붙이는 함수

BillnairK 2017. 7. 14. 19:11

▶ 문자열을 이어주는 함수 - strcat_s, strncat_s ◀


말 그대로 문자열을 뒤에다가 붙여서 이어주는 함수다. 하지만 문자열을 복사하는 strcpy_s, strncpy_s 와는 달리 자동으로 NULL값을 붙여준다. 즉 2개의 문자열을 합쳐도 NULL값은 하나라는 뜻이다.


#include <string.h>

char * strcat(char * dest, const char * src);

char * strncat(char * dest, const char * src, size_t n); 

→덧붙여진 문자열의 주소 값 반환


strcat_s(str1, str2); → str2의 문자열을 str1 뒤에 붙여준다.

strncat_s(str1, str2, 8); → str2의 문자열중 8개의 문자만 str1의 뒤에 붙여준다. 특이한은 문자의 갯수를 정해주는

인자 size_t n 값을 붙여주는 문자열의 값보다 커도 가능하다. 하지만 그만큼 붙여지는 배열의 크기도 커야한다.


이 함수를 사용할 때 조심해야 할 점은 바로 붙여지는 배열의 크기이다. 

붙여지는 배열의 크기는 자기 자신 문자열의 크기 + 붙여질 문자열의 크기 + NULL값 이어야 한다.

*문자열이 붙는 위치는 붙여지는 문자열의 NULL값이 사라지고 그 위치부터 문자열이 붙는다.


#include <stdio.h>

#include <string.h>


int main(void) {

char str1[22] = "billnairk."; // NULL값 제외크기 10

char str2[20] = "tistory.com"; // NULL값 제외크기 11

       // str1의 크기는 str1 문자열의 크기 + str2 문자열의 크기 + NULL 값, str3도 마찬가지이다.

char str3[29] = "Phone Number : "; // NULL값 제외크기 15

char str4[20] = "010-9283-29431231"; // NULL값 제외크기 17이지만 13개만 계산


strcat_s(str1, str2);

puts(str1);


strncat_s(str3, str4, 13); // 13개만큼의 문자만 붙이라는 뜻

puts(str3);


} 


















Comments