분류 전체보기45 strcpy구현 strcpy 는 어떤 문자열을 다른 문자열에 복사하는 함수이다.이를 구현하면 다음과 같다. 12345678910int strcpy(const char*arr, char* arr2){ int i=-1; while(arr[++i]!=0) { *(arr2+i) = *(arr+i); } *(arr2+i) = '\0'; return 0;}Colored by Color Scriptercs 복사되어지는 문자열은 바뀌면 안되기때문에, const 를 붙여주었고, 첫번째 문자부터 돌면서 arr2의 값에 집어넣는다.끝난후 arr2의 마지막칸에 널문자를 넣어서 문자열의 종결을알려준다. 2016. 4. 4. strcmp 구현 strcmp 는 두 문자열의 내용이 같은지 확인하는 함수이다.이를 구현하면 다음과 같다. 123456789101112131415161718int strcmp(const char* arr, const char* arr2){ int i=-1; int len1=-1, len2=-1; while(arr[++len1]); while(arr2[++len2]); if(len1!=len2) return -1; while(arr[++i]) { if(arr[i] != arr2[i]) { return -1; } } return 0; }Colored by Color Scriptercs char* 에 const 를 붙인이유는, 두 문자열을 비교하는것이지, 값을 바꾸기 위함이 아니기에,값이 바꿔지지 않도록 한정자를 붙여주었다. 2016. 4. 4. 배열과 포인터 배열은 가장 기본적인 자료 구조로 실용성이 높다. 포인터는 C와 다른언어를 구분하는 가장 큰 특징이다. 이 둘은 상호 보완적이면서 일정 부분에 있어서 대체가 가능하다. C는 내부적으로 1차원 배열만 지원한다.2차원 이상의 다차원 배열은 1차원 배열의 확장에 불과하다.사실상은 배열의 배열인것이다. [ ] 연산자 배열의 한 요소를 참조할 때느느 [] 연산자를 사용하며, 괄호 안에 읽고자 하는 배열의 요소의 첨자를 적는다. 사실 이 연산자가 언뜻 보기에는 구두점같지만,실제로는 첨자연산을 하는 포인터 연산자이다.이 연산자의 동작은 다음과 같다.ptr 이 임의의 배열을 가리키는 포인터이고 n 이 정수일때ptr[n] = *(ptr+n); []연산자가 따로 정의되어 있는 것이 아니라, 포인터 연산의다른 표기법 일 뿐.. 2016. 4. 3. 동적할당 할당의 필요성 프로그램이 실행되기위해서는, 메모리가 필요한다. 왜냐하면, 실행파일 자체가 메모리에 로드되어야 실행될 수 있고,프로그램이 작업을 위해 선언하는 변수도 메모리에 할당되기 때문이다. 만약 int total, average 같은 변수를 선언한다고 하면,컴파일러는 이 두변수들이 값을 제데로 보관할 수 있도록 타입에 맞는 크기만큼메모리를 할당한다.정수형이나 실수형은 아주작아서 이런 변수들때문에 문제가 생길경우는 드물다. 동적 할당(Dynamic Allocation) 이란 프로그램을 작성할때메모리 필요량을 컴파일러가 지정하는 정적 할당과는 달리 실행중에 필요한 만큼 메모리를 할당하는 기법이다.만약 학생들의 점수를 저장하는 변수를 만들때, 보통은 배열을 사용할 것이다. 만약 학생수가 50명이라면int .. 2016. 4. 3. 이전 1 ··· 3 4 5 6 7 8 9 ··· 12 다음