컴퓨터 프로그래밍/C

C언어 문자열 처리 함수 (strcpy() :문자열 복사)

나노콛 2019. 7. 23. 11:34

strcpy() 문자열 복사하는 함수

 

#include <stdio.h>
#include <string.h>

int main()
{
	char src[10] = "Hello";
	char dest[10] = { 0 };
	char * tmp = NULL;

	printf("dest : %s \n", dest);

	tmp = strcpy(dest,src);

	printf("tmp : %s \n", tmp);
	printf("dest : %s \n", dest);
	printf("tmp Addr : %p dest Addr : %p\n", tmp, dest);
	return 0;
}

strcpy() 의 인자는 2개가 들어가며
처음 인자는 복사한 내용을 담을 공간의 주소
두 번째 인자는 복사할 내용이 있는 공간의 주소입니다.

뒤의 인자의 내용이 앞의 인자에게 복사됩니다.

strcpy() 의 반환 값은 문자열 주소 값입니다.


strcpy() 함수 직접 구현해보기

1. 이 함수의 리턴 타입은?
2. 이 함수의 인자의 형태는?

 

이 함수의 리턴 타입은 문자열 주소가 됩니다.
주소를 반환하려면 포인터 형태가 되어야 합니다.

char * MySrtcpy(char * dest, char * src)
{

}

이제 복사를 하는 기능에 대해 이야기를 해보자면
src 안에 있는 문자열 하나하나를
desc 안으로 하나하나 넣어주면 됩니다.

이 문제도 포인터 연산이 필요합니다.

 

char * MyStrcpy(char * dest, char * src)
{
	int i = 0;
	while (*(src + i)) // src+i번째안에 있는 값이 null문자가 올때까지 반복
	{
		*(dest + i) = *(src + i); //dest+i번째 안에 있는 값에 
                                  //src+i번째 있는 값을 넣음
		i++;
	}

	return dest; //dest에 값이 다 들어갔기 때문에 dest 반환
}