본문 바로가기
프로그래밍언어/C언어[초급]

[C언어][초급] Chapter48. 문자열 함수 – strcat 함수로 문자열 이어 붙이기

by about_IT 2025. 4. 19.

여러 개의 문자열을 하나로 합치고 싶을 때 사용하는 함수가 strcat입니다.
이 함수는 기존 문자열의 끝에 다른 문자열을 이어 붙이는 역할을 합니다.

예를 들어 "Hello"와 "World"를 붙여서 "HelloWorld"로 만들고 싶다면 strcat을 사용할 수 있습니다.


● strcat 함수 사용법

#include <string.h>

char str[20] = "Hello";
strcat(str, "World");

결과는 "HelloWorld"입니다. 문자열 "World"가 str의 끝에 이어 붙습니다.


● 문자열 변수끼리 붙이기

char a[30] = "Good ";
char b[] = "Morning";

strcat(a, b);

결과적으로 a는 "Good Morning"이 됩니다.


● 주의할 점

  • 이어 붙이는 대상 배열(첫 번째 인수)은 충분히 큰 공간이어야 합니다.
  • 문자열 끝의 널 문자('\0')를 기준으로 붙입니다.
  • 자기 자신을 붙이거나, 크기 계산 없이 붙이면 오류가 발생할 수 있습니다.

strcat은 문자열을 결합하거나 문장을 완성할 때 자주 사용됩니다.
단, 배열의 크기를 항상 고려하면서 안전하게 사용해야 합니다.


● 실습 문제

문제 1

"Hello"와 "World"를 하나의 배열에 붙여 출력하세요.

 

문제 2

"안녕"과 "하세요"를 연결하여 "안녕하세요"를 만들고 출력하세요.

 

문제 3

strcat 사용 시 배열의 크기를 확인하지 않고 붙이면 어떤 문제가 생기나요?

 

문제 4

문자열 "C "와 "Programming"을 이어 붙이고 출력하는 코드를 작성하세요.

 

문제 5

strcat 함수는 문자열 끝을 어떻게 판단하나요?

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

▶ 정답 확인하기

정답 1

char str[20] = "Hello";
strcat(str, "World");
printf("%s\n", str);

 

정답 2

char greeting[30] = "안녕";
strcat(greeting, "하세요");
printf("%s\n", greeting);

 

정답 3

충분한 공간 없이 strcat을 사용하면 메모리 침범(오버플로우)이 발생해 프로그램이 비정상 종료될 수 있습니다.

 

정답 4

char text[50] = "C ";
strcat(text, "Programming");
printf("%s\n", text);

 

정답 5

strcat 함수는 널 문자('\0')를 기준으로 문자열 끝을 판단하고, 그 위치부터 문자열을 붙입니다.