본문 바로가기

반응형

C/Reference

(27)
[C] 소문자는 대문자로 대문자는 소문자로 #include #include #include int UpperLower(char *temp);int main(){ char strtest[10] = {0}; strcpy(strtest, "aBcDeF!@#"); printf("Orinal Str - %s\n\n", strtest); UpperLower(strtest); printf("UpperLower - %s\n\n", strtest); return 0;}int UpperLower(char *temp){ for( ; *temp != NULL; temp++) { if(isalpha(*temp)) { *temp = *temp ^ 0x20; } } return 0;}
[C] 시간 체크 #include #include #include #include // Sleep 함수를 사용하기 위한 헤더 파일int main(){ clock_t start, finish; double time_check = 0; start = clock(); Sleep(2000); finish = clock(); time_check = (double)(finish - start) / CLOCKS_PER_SEC; printf("%.2lf 초입니다.\n", time_check); return 0;}
[C] _msize, 포인터가 가리키는 메모리의 크기 알아내기 #include #include #include int main(){ char *test = NULL; test = (char *)malloc(29); printf("size - %d\n", _msize(test)); return 0;} _msize를 사용하기 위해선 #include 헤더를 추가해줘야 한다.​힙 영역에 할당된 메모리 크기만 구할 수 있다.​스택에 할당된 배열의 시작 주소를 포인터에 초기화 시키고 그 포인터를 _msize의 매개변수로 넘기면 프로그램이 죽는다.​※ sizeof는 스택에 할당된 메모리 크기를, _msize는 힙에 할당된 메모리 크기를 구할 수 있다.
[C] 퀵 정렬(Quick Sort) #include #include #define SWAP(x, y, t) ((t) = (x), (x) = (y), (y) = (t))int partition(int list[], int left, int right){ int pivot = 0, temp = 0; int low = 0, high = 0; low = left; high = right + 1; pivot = list[left]; do { do { low++; }while(low = left && list[high] > pivot); if(low
[C] 단일 연결 리스트 (Simple Linked List) 출처 - C로 배우는 알고리즘 (이재규 지음)#include #include typedef struct _node{ int key; struct _node *next;}node;void init_list(); // head와 tail 생성 및 초기화node *insert_after(int key, node *t); // 매개변수로 넘겨준 노드 다음에 새로운 노드 추가int delete_next(node *t); // 매개변수로 넘겨준 노드 다음 노드 삭제node *find_node(int k); // 매개변수로 넘겨준 key 값을 가지는 노드를 검색int delete_node(int k); // 매개변수로 넘겨준 key 값을 가지는 노드를 삭제node *insert_node(int k, in..
[C] 이중 연결 리스트 (Double Linked List) 출처 - C로 배우는 알고리즘 (이재규 지음)#include #include typedef struct _node{ int key; struct _node *prev; struct _node *next;}node;void init_dlist(void); // head와 tail 메모리 할당 및 next, prev 초기화node *insert_node_ptr(int k, node *t); // 매개변수 t노드의 앞에 매개변수 k를 key 값으로 가지는 노드를 추가int delete_node_ptr(node *p); // 매개변수 p노드를 삭제node *find_node(int k); // 매개변수 k를 key 값으로 가지는 노드 검색int delete_node(int k); // 매개변수 k를..
[C] 단일 연결 리스트로 구현한 스택 출처 - C로 배우는 알고리즘 (이재규 지음)#include #include typedef struct _node{ int key; struct _node *next;}node;void init_stack(); // head와 tail 메모리 할당, head가 가리키는 다음 노드 tail로 초기화, tail이 가리키는 다음 노드 자기자신으로 초기화int push(int key); // head 다음에 노드 추가, 메모리 부족으로 할당 실패시 -1 리턴int pop(); // 입력된 값이 아무것도 없을 경우 -1 리턴void clear_stack(); // 스택의 모든 노드를 메모리 해제void print_stack(); // 스택의 모든 내용을 출력node *head, *tail;int main(int..
[C] 이중 연결 리스트로 구현한 큐 출처 - C로 배우는 알고리즘 (이재규 지음)#include #include typedef struct _node{ int key; struct _node *prev; struct _node *next;}node;node *head, *tail;void init_queue(); // head와 tail 메모리 할당 및 head와 tail의 prev, next 초기화int put(int k); // Queue에 값을 넣음int get(); // Queue에서 값을 얻어옴void clear_queue(); // Queue를 모두 비움void print_queue(); // Queue의 모든 내용 출력int main(int argc, char *argv[], char **env){ int i = 0; init..

반응형