inlcude
#include <string.h> size_t strlcat(char *dest, const char *src, size_t size);
인수
- dest
src앞에 있는 문자열이다.- src
dest뒤에 붙을 문자열이다.- size
우리가 원하는 문자열의 길이이다.
두 문자열을 붙이는 함수
이다. dest
의 맨 뒤에 src
를 size
만큼만 붙인다. 만약 size가 dest의 길이 이하
라면 문자열을 붙이는 과정이 사라지고 size가 더 크다면
size - 1만큼 src를 붙이고 마지막에 '\0'값을 넣어주고 리턴 값은 dest의 길이 + src의 길이
이다.
이런 식으로 size에 넉넉하게 20을 주면 dest에 src를 모두 붙이게 되고 리턴은 dest의 길이 + src의 길이인 9가 리턴의 된다.
만약 size가 src + dest 이하
라면 어떻게 될까??
이런 식으로 size를 7
로 넣어주면 dest의 길이를 제외
하고 남은 길이를 붙이게 되는데 '\0'값도 제외
를 해 주어야 하니 "456" 3개만 붙이게 된다. 리턴값은 여전히 dest + src
이다.
그렇다면 dest보다 작으면 어떻게 될까?
이런 식으로 문자열을 붙이지 않고 그대로남겨두게 된다.
리턴값은 dest + src이다.