본문 바로가기
카테고리 없음

문자열 합치기 strcat, strncat 함수 사용법 & 예제 +구현

by kangs' tong 2023. 8. 25.

strcat 함수란

strcat 함수는 두 개의 문자열을 합쳐주는 함수입니다. 이 함수는 문자열의 끝을 찾아서(널 문자, '\0') 첫 번째 문자열 뒤에 두 번째 문자열을 연결합니다.

사용법

char* strcat(char* str1, const char* str2);
  • str1: 문자열이 추가될 대상 문자열
  • str2: 추가할 문자열

예제

#include <stdio.h>
#include <string.h>

int main() {
    char str1[20] = "Hello, ";
    const char* str2 = "world!";

    strcat(str1, str2);

    printf("%s", str1);

    return 0;
}

위의 예제 코드를 실행하면 "Hello, world!"가 출력됩니다. strcat(str1, str2)를 호출하면 str1str2를 이어 붙인 결과가 저장됩니다.

strncat 함수란

strncat 함수는 strcat 함수와 기능이 비슷하지만, 일정한 길이만큼만 문자열을 연결할 수 있습니다. 따라서, 두 번째 매개변수로 연결할 문자열의 최대 길이를 지정해야 합니다.

사용법

char* strncat(char* str1, const char* str2, size_t n);
  • str1: 문자열이 추가될 대상 문자열
  • str2: 추가할 문자열
  • n: 연결할 문자의 최대 개수

예제

#include <stdio.h>
#include <string.h>

int main() {
    char str1[20] = "Hello, ";
    const char* str2 = "world!";

    strncat(str1, str2, 5);

    printf("%s", str1);

    return 0;
}

위의 예제 코드를 실행하면 "Hello, world"가 출력됩니다. strncat(str1, str2, 5)를 호출하면 str1str2의 처음 5개의 문자를 이어 붙인 결과가 저장됩니다.

구현 내용

strcat 함수는 다음과 같이 구현할 수 있습니다:

char* strcat(char* str1, const char* str2) {
    char* result = str1;

    while (*str1) {
        str1++;
    }

    while (*str2) {
        *str1++ = *str2++;
    }

    *str1 = '\0';

    return result;
}

strncat 함수는 다음과 같이 구현할 수 있습니다:

char* strncat(char* str1, const char* str2, size_t n) {
    char* result = str1;

    while (*str1) {
        str1++;
    }

    while (n && *str2) {
        *str1++ = *str2++;
        n--;
    }

    *str1 = '\0';

    return result;
}

정리

  • strcat 함수는 두 개의 문자열을 합쳐주는 함수입니다. 문자열의 끝을 찾아 첫 번째 문자열에 두 번째 문자열을 연결합니다.
  • strncat 함수는 strcat 함수와 비슷한 기능을 가지지만, 일정한 길이만큼 문자열을 연결할 수 있습니다.
  • strcat 함수의 사용법 및 예제를 소개하고, 구현 내용을 설명했습니다.
  • strncat 함수의 사용법 및 예제를 소개하고, 구현 내용을 설명했습니다.

댓글