개인노트
[C언어] strcat_s, strncat_s 함수 - 문자열을 붙이는 함수 본문
▶ 문자열을 이어주는 함수 - 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); } |
'C > 문법' 카테고리의 다른 글
[C언어] 자료형을 변환해주는 atoi, atol, atof 함수 (0) | 2017.07.15 |
---|---|
[C언어] strcmp, strncmp 함수 - 문자열을 비교하는 함수 (0) | 2017.07.14 |
[C언어] strcpy_s, strncpy_s 함수 - 문자열 복사 함수 (0) | 2017.07.14 |
[C언어] 문자열의 길이를 반환하는 strlen 함수 (0) | 2017.07.14 |
[C언어] 표준 입출력 & 버퍼 (0) | 2017.07.14 |