문자열 복사 및 붙이기 관련 함수
C 언어에서 문자열을 다루는 기본적인 함수들은 문자열을 복사하거나 결합할 때 매우 유용합니다. 이번 시간에는 strcpy, strncpy를 이용한 문자열 복사와, strcat, strncat을 이용한 문자열 결합 방법에 대해 알아보겠습니다.
문자열 복사 strcpy
strcpy 함수는 한 문자열을 다른 문자열로 복사하는 함수입니다. 대상 문자열은 반드시 충분한 메모리 공간이 있어야 하며, NULL 문자까지 포함하여 복사합니다.
함수 원형
char *strcpy(char *dest, const char *src);
예제
#include <stdio.h>
#include <string.h>
int main() {
char src[] = "Hello, World!";
char dest[50];
strcpy(dest, src);
printf("Source: %s\n", src);
printf("Destination: %s\n", dest);
return 0;
}
실행 결과
Source: Hello, World!
Destination: Hello, World!
src 문자열을 dest로 복사한 후, 두 문자열이 동일하게 출력됩니다. dest는 충분한 크기를 가지고 있어 문제없이 복사되었습니다.
문자열 복사 strncpy
strncpy는 strcpy와 유사하지만, 지정한 길이만큼만 복사합니다. 이 함수는 NULL 문자도 포함하여 복사하지만, 길이가 부족하면 NULL 문자가 추가되지 않을 수 있습니다.
함수 원형
char *strncpy(char *dest, const char *src, size_t n);
예제
#include <stdio.h>
#include <string.h>
int main() {
char src[] = "Hello, World!";
char dest[50];
strncpy(dest, src, 5);
dest[5] = '\0';
printf("Source: %s\n", src);
printf("Destination: %s\n", dest);
return 0;
}
실행 결과
Source: Hello, World!
Destination: Hello
src의 처음 5글자만 dest에 복사됩니다. strncpy 함수는 NULL 문자로 끝나지 않을 수 있으므로, 수동으로 문자열을 종료해야 합니다.
문자열 붙이기 strcat
strcat 함수는 두 문자열을 하나로 결합합니다. 첫 번째 문자열의 끝에 두 번째 문자열을 덧붙입니다.
함수 원형
char *strcat(char *dest, const char *src);
예제
#include <stdio.h>
#include <string.h>
int main() {
char src[] = "World!";
char dest[50] = "Hello, ";
strcat(dest, src);
printf("Concatenated String: %s\n", dest);
return 0;
}
실행 결과
Concatenated String: Hello, World!
strcat는 dest 문자열의 끝에 src 문자열을 추가합니다. dest는 충분한 크기를 가져야 하며, NULL 문자로 결합된 문자열이 끝납니다.
문자열 붙이기 strncat
strncat는 strcat와 유사하지만, 결합할 문자열의 길이를 제한할 수 있습니다.
함수 원형
char *strncat(char *dest, const char *src, size_t n);
예제
#include <stdio.h>
#include <string.h>
int main() {
char src[] = "World!";
char dest[50] = "Hello, ";
strncat(dest, src, 3);
printf("Concatenated String: %s\n", dest);
return 0;
}
실행 결과
Concatenated String: Hello, Wor
src의 첫 3 문자만 dest에 추가되었습니다. dest가 충분한 크기를 갖고 있는지 항상 확인해야 합니다.