C/문자열
[C] 문자열 (strcpy함수, strncpy함수)
KR_Jimi
2024. 1. 16. 22:40
문자열 대입함수이다.
strcpy함수는 문자열을 대입하는 함수이다.
- <string.h>안에 내장되어 있다.
- #define _CRT_SECURE_NO_WARINGS 를 사용해야한다.
- 함수 형태
strcpy(str1, str2) // 첫번재 인수에는 문자열 받을 곳, 두번째 인수에는 대입할 문자열
예시
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main(void) {
char str1[80] = "strawberry";
char str2[80] = "apple";
char* ps1 = "banana";
char* ps2 = str2;
printf("최초 문자열: %s\n", str1);
strcpy(str1, str2);
printf("바뀐 문자열: %s\n", str1);
strcpy(str1, ps1);
printf("바뀐 문자열: %s\n", str1);
strcpy(str1, ps2);
printf("바뀐 문자열: %s\n", str1);
strcpy(str1, "banana");
printf("바뀐 문자열: %s\n", str1);
return 0;
}
실행결과
최초 문자열: strawberry
바뀐 문자열: apple
바뀐 문자열: banana
바뀐 문자열: apple
바뀐 문자열: banana
strcpy()를 사용하기 위해서 문자열 배열 두 개를 선언 및 초기화한다. 문자열 포인터변수도 2개 선언 및 초기화한다. strcpy()햠수를 이해하기 쉽도록 초기의 문자열을 출력하고 strcpy(str1, str2)를 사용하고 다시 출력해서 결괏값을 확인한다. 포인터 변수 ps1이 가리키는 것은 문자열 상수이다. 문자열 상수는 첫번째 문자의 주소로 바뀔 수 있으므로 포인터 변수에 대입할 수 있다. 문자열 상수는 문자열이므로 strcpy()의 두번재 인수로 사용할 수 있다.
strncpy함수는 문자의 개수를 지정한 만큼 대입하는 함수이다.
- <string.h>안에 내장되어 있다.
- #define _CRT_SECURE_NO_WARNINGS 를 사용해야한다.
- 함수 형태
- strncpy(str1, str2, 개수) //첫번째 인수에는 문자열 받을 곳, 두번재 인수에는 대입할 문자열, 세번재 인수에는 지정할 문자 갯수
예시
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
int main(void) {
char str[20] = "mango tree";
strncpy(str, "apple-pie", 5);
printf("%s\n", str);
return 0;
}
문자열 배열을 선언 및 초기화 한다. strncpy()함수에서 첫번째 인수에는 문자열을 받을 곳을 쓰고, 두번재 인수에는 넣을 문자열을, 세번재 인수에는 지정할 문자의 갯수를 쓴다. 항상 배열 안 문자열의 끝에는 '\0'문자가 붙는다.
실행결과
apple tree