알고리즘
문자열 복사하기(dest:복사할 버퍼, dsize:버퍼 길이, src: 원본 문자열)
….dsize 1감소
…..origin:= dest
….반복(dsize가 참이면서 dest가 가리키는 곳에 src가 가리키는 문자 대입)//대입한 결과가 참이면 반복
……..dest와 src를 다음 위치로 증가, dsize 1감소
….dest가 가리키는 곳에 종료 문자 대입
….origin 반환
소스 코드
//문자열 복사 - 버퍼 오버플로우 방지 #include <stdio.h> char *mystrcpy_s(char *dest, size_t dsize, const char *src); int main(void) { char source[100] = "Hello World"; char dest[100]; printf("원본 문자열:%s\n", source); mystrcpy_s(dest, sizeof(dest), source); printf("복사 결과 문자열: %s\n", dest); return 0; } char *mystrcpy_s(char *dest, size_t dsize, const char *src) { char *origin; dsize--;//맨 마지막에 종료 문자('\0')를 추가해야 하므로 버퍼 길이를 1 감소 //dsize가 0이 아니고 복사한 문자가 참이면 반복 for (origin = dest; (dsize) && (*dest = *src); dest++, src++, dsize--); *dest = 0;//종료 문자 복사 return origin; }