Computer >> 컴퓨터 >  >> 프로그래밍 >> C 프로그래밍

C 언어 strcat() 함수 완벽 정리 – 문자열 연결 함수의 개념과 사용법

C 표준 라이브러리 함수인 char *strcat(char *dest, const char *src)src가 가리키는 문자열을 dest가 가리키는 문자열 끝에 이어 붙이는(연결하는) 역할을 합니다.

C 언어에서는 문자들이 모여 이루어진 배열을 문자열(string)이라고 부릅니다.

문자열 선언 방법

문자열은 다음과 같은 형식으로 선언합니다.

char stringname [size];

예를 들어 char string[50];은 최대 50자를 저장할 수 있는 문자열을 의미합니다.

문자열 초기화

  • 단일 문자 상수를 이용한 초기화:
char string[10] = { 'H', 'e', 'l', 'l', 'o', '\0' };
  • 문자열 상수를 이용한 초기화:
char string[10] = "Hello";

문자열 접근 – 문자열을 입출력할 때는 제어 문자 "%s"를 사용하며, 널 문자('\0')를 만날 때까지 문자열 전체를 처리합니다.

strcat() 함수의 주요 특징

  • 두 개의 문자열을 하나로 합칠 때(연결할 때) 사용합니다.

  • 목적지(destination) 문자열의 크기는 반드시 원본(source) 문자열까지 모두 담을 수 있을 만큼 충분히 커야 합니다.

  • 연결 결과는 목적지 문자열에 저장되며, 반환값도 목적지 문자열의 포인터입니다.

구문(Syntax)

strcat() 함수의 기본 구문은 다음과 같습니다.

strcat(목적지 문자열, 원본 문자열);

예제 프로그램 1

다음 프로그램은 strcat() 함수의 기본적인 사용법을 보여줍니다.

#include <string.h>
main(){
    char a[50] = "Hello \n";
    char b[20] = "Good Morning \n";
    strcat(a, b);
    printf("concatenated string = %s", a);
}

실행 결과

위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.

Concatenated string = Hello Good Morning

예제 프로그램 2

이번에는 사용자로부터 두 개의 문자열을 직접 입력받아 strcat() 라이브러리 함수로 연결하는 C 프로그램을 살펴보겠습니다.

#include<stdio.h>
#include<string.h>
void main(){
    //원본 문자열과 목적지 문자열 선언//
    char source[45], destination[50];
    //사용자로부터 원본 문자열과 목적지 문자열 입력받기//
    printf("Enter the source string : \n");
    gets(source);
    printf("Enter the destination string : \n");
    gets(destination);
    //두 문자열 연결//
    strcat(source, destination);
    //연결된 문자열 출력//
    printf("The modified destination string :");
    puts(source);
}

실행 결과

위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.

Enter the source string :Tutorials Point
Enter the destination string :C programming
The modified destination string :Tutorials Point C programming

주의 사항

strcat() 함수를 사용할 때는 목적지 배열에 원본 문자열까지 모두 수용할 수 있는 충분한 공간이 있는지 반드시 확인해야 합니다. 공간이 부족하면 버퍼 오버플로우가 발생해 프로그램이 비정상적으로 종료될 수 있습니다. 또한 위 예제에 사용된 gets() 함수는 버퍼 오버플로우 위험 때문에 C11 표준에서 제거되었으므로, 실제 개발 환경에서는 fgets() 사용을 권장합니다.