본문 바로가기
Language/C언어

C033_strncat 함수 구현해서 사용하기

by OdOp 관리자 2023. 10. 28.
SMALL

strncat은 strcat과 마찬가지로 입력된 두개의 문자열중 첫번째 문자열에 두 번째 문자열을 붙이는 것을 의미합니다. 

근데, 이번에는 몇개를 붙이는지 정해주는 것이지요.

 

아래의 예를 보시면 이해하기가 더 쉬울 것이라고 생각됩니다. 

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

int main() 
{
    char s1[14] = "Hello, ";
    char s2[7] = "world!";

    printf("s1: \"%s\"\n", s1);  //s1: "Hello, "
    printf("s2: \"%s\"\n", s2);  //s2: "world!"
    printf("%s\n", strncat(s1, s2, 2));  //Hello, wo
    printf("%s\n", s1);  //Hello, wo
    return 0;
}

 

이번에 한번 strncat이라는 함수를 만들어 보겠습니다. 

 

strncat 함수

char    *OdOp_strncat(char *dest, char *src, unsigned int nb)
{
    unsigned int    i;
    unsigned int    j;

    i = 0;
    j = 0;
    while (dest[i] != '\0')
    {
        i++;
    }
    while (src[j] != '\0' && j < nb)
    {
        dest[i + j] = src[j];
        j++;
    }
    dest[i + j] = '\0';
    return (dest);
}

우선 첫 번째 인자인 dest의 길이를 측정했습니다.

그러고 나서 dest뒤에 src를 지정한 갯수만큼 붙이고 마지막에 null을 추가해 주었습니다. 

(문자열의 끝을 알려주어야 하기 때문입니다. )

마지막으로 dest 문자열을 리턴해 주었습니다. 

 

LIST