POST

C언어 문자열 복사하여 덧붙이기 (strcat, strncat)

문자열 덧붙이기


string헤더 파일에 존재하는 strcat, strncat 라이브러리 함수를 이용하여 문자열 뒤에 다른 문자열을 복사하여 덧 붙여보자.


#include<string.h> - 해석하면 " string헤더파일을 포함한다"라고할 수 있다.


strcat의 사용법은 아래와 같다.

ex) strcat(문자열1,문자열2)


char str1[30] = "First~";

char str2[30] = "Second";


strcat(str1,str2);


여기서 알아야 할 점은 문자열 덧붙임이 시작되는 위치는 NULL문자 뒤에 오는 것이 아니라 NULL문자 위치에 오게 된다.

따라서 위의 코드는 "First~\0Second\0" 가 아니라 "First~Second\0" 가 되는 것이다.


strncat은 strcat과 상당히 비슷하지만 strncat은 덧붙일 문자열의 길이를 제한 할 수 있다.

ex) strncat(문자열1, 문자열2, 크기)


아래의 코드를 작성 하여 보자


#include<stdio.h>

#include<string.h>


int main(void) {

char str1[20] = "First~";

char str2[20] = "Second";


char str3[20] = "Simple Num: ";

char str4[20] = "1234567890";


/**** case 1 ****/

strcat(str1, str2);

puts(str1);


/**** case 2 ****/

strncat(str3, str4, 7);

puts(str3);


return 0;

}



여기서 만약 str1과 str3 배열의 크기가 덧 붙였을때 보다 크기가 작다면 실행이 되지 않거나 경고또는 실행이 되더라도 정상적으로 프로그램이 종료되지 않는다.