문자열 복사하기
string헤더 파일에 존재하는 strcpy, strncpy 라이브러리 함수를 이용하여 문자열을 복사하여 보자.
#include<string.h> - 해석하면 " string헤더파일을 포함한다"라고할 수 있다.
strcpy의 사용 방법은 아래와 같다.
strcpy(복사 받는 문자열, 복사할 문자열);
ex)
#include<stdio.h>
#include<string.h>
int main(void) {
char str1[10]="12345";
char str2[10];
strcpy(str2, str1); // str1의 내용을 str2로 복사
printf("문자열 길이: %d 문자열 내용:%s \n",strlen(str2), str2);
return 0;
}
strncpy의 사용방법은 아래와 같다.
strncpy(복사 받는 문자열, 복사할 문자열, 복사 받는 문자열의 길이)
#include<stdio.h>
#include<string.h>
int main(void) {
char str1[10]="12345";
char str2[3];
strncpy(str2, str1,sizeof(str2));// str1의 내용을 str2길이만큼 str2로 복사
printf("문자열 길이: %d \n",strlen(str2));
puts(str2);
strncpy(str2, str1, sizeof(str2) - 1);// str1의 내용을 str2길이 보다 1작게 str2로 복사
str2[sizeof(str2) - 1] = 0; // 문자열의 마지막을 0(NULL)문자 삽입
printf("문자열 길이: %d \n", strlen(str2));
puts(str2);
return 0;
}
위의 결과를 보면 알겠지만 첫번째 출력에서 배열의 길이를 그대로 적용을 할 경우 제대로 출력이 이루어 지지않는다.
그 이유는 문자열의 끝을 알려주는 NULL(0)값이 없기 때문이다.
그래서 원래 배열의 길이보다 1작게 적용후 마지막 자리를 0(NULL)로 채우는 것이다.
'C' 카테고리의 다른 글
C언어 문자열 비교하기(strcmp, strncmp) (0) | 2014.08.09 |
---|---|
C언어 문자열 복사하여 덧붙이기 (strcat, strncat) (0) | 2014.08.07 |
C언어 스트림(stream)의 활용 - 문자열 단위 입출력 함수 (2) | 2014.07.27 |
C언어 스트림(stream)의 활용 - 문자 단위 입출력 함수 (0) | 2014.07.26 |
C언어 스트림(stream)의 이해 (0) | 2014.07.25 |