1. ๋ฌธ์์ด ํฉ์น๊ธฐ ๊ธฐ๋ฅ์ ํ์์ฑ
๋ฌธ์์ด ํฉ์น๊ธฐ๋ ํ๋ก๊ทธ๋๋ฐ์์ ๋งค์ฐ ์ค์ํ ๊ธฐ๋ฅ ์ค ํ๋์ ๋๋ค. ๋ง์ ์ํฉ์์ ๋ฌธ์์ด์ ๊ฒฐํฉํ์ฌ ํ๋์ ๋ฌธ์์ด๋ก ๋ง๋ค์ด์ผ ํ ํ์๊ฐ ์์ต๋๋ค. ์ด๋ฅผ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๋ ํจ์๋ค์ด ๋ฐ๋ก strcat๊ณผ strncat์ ๋๋ค.
๋ฌธ์์ด ํฉ์น๊ธฐ ๊ธฐ๋ฅ์ ๋ค์ํ ๋ถ์ผ์์ ์ฌ์ฉ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ๋ถ๋ฌ์จ ์ ๋ณด๋ฅผ ๊ฐ๊ณตํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ๋ง๋ ๋ค๊ณ ๊ฐ์ ํด ๋ด ์๋ค. ์ด ๊ฒฝ์ฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ ์ฝ๋๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํ ํ ๋ค๋ฅธ ๋ฌธ์์ด๊ณผ ๊ฒฐํฉํ์ฌ ์ต์ข ๊ฒฐ๊ณผ๋ฅผ ๋ง๋ค์ด์ผ ํ ๊ฒ์ ๋๋ค. ๋ํ, ์ฌ์ฉ์๋ก๋ถํฐ ์ ๋ ฅ๋ฐ์ ์ฌ๋ฌ ๊ฐ์ ๋ฌธ์์ด์ ๊ฒฐํฉํ์ฌ ํ๋์ ์ถ๋ ฅ์ ์์ฑํด์ผ ํ๋ ๊ฒฝ์ฐ๋ ์์ ๊ฒ์ ๋๋ค.
๋ฌธ์์ด ํฉ์น๊ธฐ ๊ธฐ๋ฅ์ ์ด ์ธ์๋ ํ์ผ ์ฒ๋ฆฌ, ๋คํธ์ํฌ ํต์ , ๋ทฐ ํ ํ๋ฆฟ ๋ฑ ๋ค์ํ ๊ฐ๋ฐ ์์ญ์์ ํ์์ ์ผ๋ก ์ด์ฉ๋ฉ๋๋ค. ์ด์ ๋ฐ๋ผ strcat๊ณผ strncat ํจ์๋ ํฌ๊ฒ ์ ์ฉํ ๊ธฐ๋ฅ์ผ๋ก ์ธ์ ๋ฐ๊ณ ์์ต๋๋ค. ์ดํ์๋ strcat ํจ์์ strncat ํจ์์ ์ฌ์ฉ๋ฒ๊ณผ ์์ ์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
2. strcat ํจ์์ ์ฌ์ฉ๋ฒ๊ณผ ์์
strcat ํจ์๋ C ์ธ์ด์์ ์ ๊ณตํ๋ ๋ฌธ์์ด ํฉ์น๊ธฐ ํจ์์ ๋๋ค. ๋ค์์ strcat ํจ์์ ์ฌ์ฉ๋ฒ์ ๋๋ค.
char* strcat(char* destination, const char* source);
- destination: ๋ฌธ์์ด์ด ์ฐ๊ฒฐ๋ ๋์ ๋ฌธ์์ด์ ํฌ์ธํฐ์ ๋๋ค.
- source: ์ฐ๊ฒฐํ ๋ฌธ์์ด์ ํฌ์ธํฐ์ ๋๋ค.
strcat ํจ์๋ destination ๋ฌธ์์ด ๋ค์ source ๋ฌธ์์ด์ ์ฐ๊ฒฐํ์ฌ destination ๋ฌธ์์ด์ ๋ณ๊ฒฝํฉ๋๋ค. ๋ฐํ๊ฐ์ destination ๋ฌธ์์ด์ ํฌ์ธํฐ์ ๋๋ค.
๋ค์์ strcat ํจ์๋ฅผ ์ฌ์ฉํ ์์ ์ ๋๋ค.
#include <stdio.h>
#include <string.h>
int main() {
char str1[20] = "Hello";
char str2[] = "World";
strcat(str1, str2);
printf("Result: %s\n", str1);
return 0;
}
์์ ์์ ์์๋ ๋จผ์ ๋ ๊ฐ์ ๋ฌธ์์ด ๋ณ์ str1
๊ณผ str2
๋ฅผ ์ ์ธํ๊ณ ์ด๊ธฐ ๊ฐ์ ํ ๋นํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ strcat
ํจ์๋ฅผ ์ฌ์ฉํ์ฌ str2
๋ฅผ str1
์ ๋์ ์ฐ๊ฒฐํ์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
์คํ ๊ฒฐ๊ณผ๋ "HelloWorld"๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค. ์ด์ฒ๋ผ strcat ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฌธ์์ด์ ํฉ์น ์ ์์ต๋๋ค.
3. strncat ํจ์์ ์ฌ์ฉ๋ฒ๊ณผ ์์
strncat ํจ์๋ strcat ํจ์์ ์ ์ฌํ์ง๋ง, ์ฐ๊ฒฐํ source ๋ฌธ์์ด์ ์ผ๋ถ๋ง์ destination ๋ฌธ์์ด์ ์ถ๊ฐํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๋ค์์ strncat ํจ์์ ์ฌ์ฉ๋ฒ์ ๋๋ค.
char* strncat(char* destination, const char* source, size_t num);
- destination: ๋ฌธ์์ด์ด ์ฐ๊ฒฐ๋ ๋์ ๋ฌธ์์ด์ ํฌ์ธํฐ์ ๋๋ค.
- source: ์ฐ๊ฒฐํ ๋ฌธ์์ด์ ํฌ์ธํฐ์ ๋๋ค.
- num: source ๋ฌธ์์ด์์ ๋ณต์ฌํ ์ต๋ ๋ฌธ์ ์์ ๋๋ค.
strncat ํจ์๋ destination ๋ฌธ์์ด ๋ค์ source ๋ฌธ์์ด์ ์ฐ๊ฒฐํ์ฌ destination ๋ฌธ์์ด์ ๋ณ๊ฒฝํฉ๋๋ค. ์ด๋, ์ต๋ num๊ฐ์ ๋ฌธ์๋ง์ ๋ณต์ฌํฉ๋๋ค. ๋ฐํ๊ฐ์ destination ๋ฌธ์์ด์ ํฌ์ธํฐ์ ๋๋ค.
๋ค์์ strncat ํจ์๋ฅผ ์ฌ์ฉํ ์์ ์ ๋๋ค.
#include <stdio.h>
#include <string.h>
int main() {
char str1[20] = "Hello";
char str2[] = "World";
strncat(str1, str2, 3);
printf("Result: %s\n", str1);
return 0;
}
์์ ์์ ์์๋ ๋จผ์ ๋ ๊ฐ์ ๋ฌธ์์ด ๋ณ์ str1
๊ณผ str2
๋ฅผ ์ ์ธํ๊ณ ์ด๊ธฐ ๊ฐ์ ํ ๋นํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ strncat
ํจ์๋ฅผ ์ฌ์ฉํ์ฌ str2
์ ์ฒ์ 3๊ฐ์ ๋ฌธ์๋ฅผ str1
์ ๋์ ์ฐ๊ฒฐํ์ต๋๋ค. ๋ง์ง๋ง์ผ๋ก ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํฉ๋๋ค.
์คํ ๊ฒฐ๊ณผ๋ "HelloWor"๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค. ์ด์ฒ๋ผ strncat ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ง์ ํ ๊ฐ์์ ๋ฌธ์๋ง์ ์ฐ๊ฒฐํ ์ ์์ต๋๋ค.
4. strcat๊ณผ strncat ํจ์์ ์ฐจ์ด์
strcat ํจ์์ strncat ํจ์๋ ๋ ๋ค ๋ฌธ์์ด์ ์ฐ๊ฒฐํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ง, ๋ช ๊ฐ์ง ์ฐจ์ด์ ์ด ์์ต๋๋ค.
4.1. ๋ณต์ฌ๋๋ ๋ฌธ์ ์
strcat ํจ์๋ source ๋ฌธ์์ด์ ๋๊น์ง ๋ชจ๋ ๋ฌธ์๋ฅผ ๋ณต์ฌํ์ฌ destination ๋ฌธ์์ด์ ์ฐ๊ฒฐํฉ๋๋ค. ํ์ง๋ง strncat ํจ์๋ ์ต๋ num๊ฐ์ ๋ฌธ์๋ง์ ๋ณต์ฌํฉ๋๋ค.
4.2. ๋ฌธ์์ด์ ๋ง์ง๋ง ๊ตฌ๋ถ์
strcat ํจ์๋ source ๋ฌธ์์ด์ destination ๋ฌธ์์ด์ ๊ทธ๋๋ก ๋ณต์ฌํ์ฌ ์ฐ๊ฒฐํ๊ธฐ ๋๋ฌธ์, source ๋ฌธ์์ด์ ๋ง์ง๋ง ๊ตฌ๋ถ์์ธ '\0'๋ destination ๋ฌธ์์ด์ ํฌํจ๋ฉ๋๋ค.
strncat ํจ์๋ ์ต๋ num๊ฐ์ ๋ฌธ์๋ง์ ๋ณต์ฌํ๋ฏ๋ก, source ๋ฌธ์์ด์ ๋ง์ง๋ง ๊ตฌ๋ถ์์ธ '\0'์ ๋ณต์ฌํ์ง ์์ต๋๋ค. ๋ง์ฝ num์ด source ๋ฌธ์์ด์ ๊ธธ์ด๋ณด๋ค ์๋ค๋ฉด, destination ๋ฌธ์์ด์๋ '\0' ๋ฌธ์๊ฐ ๋ถ์ง ์์ ์ ์์ต๋๋ค.
4.3. ๋ฌธ์์ด์ ๊ธธ์ด ์ ํ
strcat ํจ์๋ destination ๋ฌธ์์ด์ด ์ถฉ๋ถํ ๊ธด ๊ฒฝ์ฐ์๋ source ๋ฌธ์์ด์ด destination ๋ฌธ์์ด์ ํ์ฌ ๊ธธ์ด๋ฅผ ์ด๊ณผํ๋ ๊ฒฝ์ฐ์๋ ์๊ธฐ์น ์์ ๋์์ด ๋ฐ์ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ destination ๋ฌธ์์ด์ ์ถฉ๋ถํ ํฌ๊ฒ ํ ๋นํด์ผ ํฉ๋๋ค.
strncat ํจ์๋ ์ต๋ num๊ฐ์ ๋ฌธ์๋ง์ ๋ณต์ฌํ๊ธฐ ๋๋ฌธ์, destination ๋ฌธ์์ด์ ํฌ๊ธฐ๋ฅผ ๋ฏธ๋ฆฌ ์์ธกํ์ฌ ์ถฉ๋ถํ ํ ๋นํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค.
๋ฐ๋ผ์ strncat ํจ์๋ฅผ ์ฌ์ฉํ ๋๋ ๋ช ์์ ์ผ๋ก ๋ณต์ฌํ ๋ฌธ์์ ๊ฐ์๋ฅผ ์ง์ ํ์ฌ ์์์น ๋ชปํ ๋์์ ๋ฐฉ์งํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
5. ๋ฌธ์์ด ํฉ์น๊ธฐ ํจ์๋ฅผ ํ์ฉํ ๊ตฌํ ์ฃผ์ ์ถ์ฒ
๋ฌธ์์ด ํฉ์น๊ธฐ๋ ํ๋ก๊ทธ๋จ์์ ์์ฃผ ํ์๋ก ํ๋ ์์ ์ค ํ๋์ ๋๋ค. ๋ฌธ์์ด ํฉ์น๊ธฐ ํจ์๋ฅผ ํ์ฉํ์ฌ ๋ค์ํ ์ฃผ์ ์ ํ๋ก๊ทธ๋จ์ ๊ตฌํํ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์์๋ ๋ช ๊ฐ์ง ์ฃผ์ ๋ฅผ ์ถ์ฒํด ๋๋ฆฌ๊ฒ ์ต๋๋ค.
5.1. ๋จ์ด ์กฐํฉ
์ฌ์ฉ์๋ก๋ถํฐ ์ฌ๋ฌ ๊ฐ์ ๋จ์ด๋ฅผ ์ ๋ ฅ๋ฐ์, ์ด๋ค์ ์ฐ๊ฒฐํ์ฌ ํ๋์ ๋ฌธ์์ด๋ก ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ๊ตฌํํด ๋ณด์ธ์. ์๋ฅผ ๋ค์ด ์ฌ์ฉ์๊ฐ "Hello", "World", "!"์ ์ ๋ ฅํ๋ฉด "Hello World!"๋ผ๋ ๊ฒฐ๊ณผ๊ฐ ์ถ๋ ฅ๋์ด์ผ ํฉ๋๋ค. ์ด๋ฅผ ์ํด strcat ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋จ์ด๋ฅผ ํ๋๋ก ํฉ์น ์ ์์ต๋๋ค.
5.2. ํ์ผ ํฉ์น๊ธฐ
์ฌ๋ฌ ๊ฐ์ ํ ์คํธ ํ์ผ์ ์ ๋ ฅ๋ฐ์ ํ๋์ ํ์ผ๋ก ํฉ์น๋ ํ๋ก๊ทธ๋จ์ ๊ตฌํํด ๋ณด์ธ์. ์ฌ์ฉ์๊ฐ ํฉ์น๊ณ ์ ํ๋ ํ์ผ๋ค์ ์ด๋ฆ์ ์ ๋ ฅํ๋ฉด, ์ด๋ค์ ์์๋๋ก ์ฝ์ด์ ํ๋์ ํ์ผ์ ์ฐ๊ฒฐํ์ฌ ์ ์ฅํด์ผ ํฉ๋๋ค. ์ด๋ strncat ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ํ์ผ ๋ด์ฉ์ ํฉ์น ์ ์์ต๋๋ค.
5.3. ๋ฉ๋ชจ์ฅ ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋จํ ๋ฉ๋ชจ์ฅ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค์ด ๋ณด์ธ์. ์ฌ์ฉ์๊ฐ ์ฌ๋ฌ ๊ฐ์ ๋ฉ๋ชจ๋ฅผ ์ ๋ ฅํ๊ณ ์ ์ฅํ ์ ์์ด์ผ ํฉ๋๋ค. ๊ฐ ๋ฉ๋ชจ๋ ๋ณ๋์ ํ์ผ๋ก ์ ์ฅ๋์ด์ผ ํ๋ฉฐ, ํ๋ก๊ทธ๋จ์ ๋ค์ ์คํํ๋ฉด ์ ์ฅ๋ ๋ฉ๋ชจ๋ฅผ ๋ถ๋ฌ์์ ์ด์ด์ ์์ฑํ ์ ์์ด์ผ ํฉ๋๋ค. ๋ฉ๋ชจ๋ฅผ ์ถ๊ฐํ ๋๋ strncat ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ธฐ์กด ๋ฉ๋ชจ ํ์ผ์ ์๋ก์ด ๋ด์ฉ์ ์ถ๊ฐํฉ๋๋ค.
์์ ์ฃผ์ ๋ค์ ๋ฌธ์์ด ํฉ์น๊ธฐ ํจ์๋ฅผ ํ์ฉํ์ฌ ๋ค์ํ ํ๋ก๊ทธ๋จ์ ๊ตฌํํ ์ ์๋ ์์์ ๋๋ค. ์ด๋ฅผ ๋ฐํ์ผ๋ก ์์ ๋ง์ ์์ด๋์ด๋ฅผ ์ถ๊ฐํ์ฌ ์ฐฝ์์ ์ด๊ณ ํฅ๋ฏธ๋ก์ด ํ๋ก๊ทธ๋จ์ ๊ฐ๋ฐํด ๋ณด์ธ์!
๋๊ธ