자료구조
-
*자료구조 제 6강자료구조 2022. 2. 15. 21:55
phonebook03 -잘못된 명령어에 대해서 적절히 반응 -저장된 사람의 수가 배열의 용량을 초과할 경우 동적 메모리 할당으로 배열의 크기를 키움 구분문자를 이용하여 하나의 긴 문자열을 작은 문자열들로 자르는 일을 문자열 tokenizing이라고 부른다. 잘라진 작은 문자열들을 보통 token이라고 부른다. strtok 원본 문자열을 변화시킴(구분자 자리에 '\0'을 삽입) -> 원본 문자열을 보존해야 한다면 문자열을 복사한 후 strtok을 실행해야함 문자열을 선언할 때 string literal (ex. char *str = "Hello world";)로 선언 할 경우 수정 불가능 하므로 strtok 오류 발생 (char str[] = "Hello world"; 가능) strtok은 새로운 배열을 ..
-
자료구조 제 5강자료구조 2022. 2. 15. 21:42
전화번호부v2.0 전화번호 삭제 -> 배열의 다음 인덱스부터 한 칸 씩 앞으로 정렬된 상태로 전화번호 저장 - strcmp()를 이용해서 사전식으로 정렬 #define _CRT_SECURE_NO_WARNINGS #include #include #define CAPACITY 100 #define BUFFER_SIZE 20 char* names[CAPACITY]; char* numbers[CAPACITY]; int n = 0; void add(); void find(); void status(); void remove(); void load(); void save(); int search(char* name); int main() { char buffer[BUFFER_SIZE]; while (1) { pri..
-
자료구조 제 4강자료구조 2022. 1. 24. 23:25
전역변수(global variable) Data section이라고 부르는 메모리 영역에 위치한다. 지역변수 (local variable) 스택(stack)이라고 부르는 영역에 위치한다. 동적 메모리 할당 (dynamic memory allocation) 아무때나 malloc등의 함수를 호출하여 필요한 크기의 메모리를 할당할 수 있다. 동적으로 할당된 메모리는 힙(heap)이라고 부르는 영역에 위치한다. 동적으로 할당된 메모리는 명시적으로 free()함수를 호출하여 반환하지 않는 한 계속 유지된다. 전화번호부v1.0 /* * 2022-01-24 * 전화번호부v1.0 */ #define _CRT_SECURE_NO_WARNINGS #include #include #define CAPACITY 100 #def..
-
자료구조 제 3강자료구조 2022. 1. 9. 23:10
연습문제 풀이 /* * 2022-01-23 * 연습문제 1 * 프로그램을 실행하면 $와 한 칸의 공백문자를 출력하고 사용자의 입력을 기다린다. * 문장을 입력하면 문장 그대로와 길이를 출력한다. */ #include #include #define BUFFER_SIZE 40 int read_line(char str[], int n); int main_1(void) { char buffer[BUFFER_SIZE]; while (1) { printf("$ "); int len = read_line(buffer, BUFFER_SIZE); //fgets(buffer, BUFFER_SIZE, stdin); //buffer[strlen(buffer) - 1] = '\0';//buffer의 마지막 문자가 줄바꿈 문자가..
-
자료구조 제2강자료구조 2022. 1. 9. 18:32
문자열 /*1번*/ char str[6]; str[0] = 'h'; str[1] = 'e'; str[2] = 'l'; str[3] = 'l'; str[4] = 'o'; str[5] = '\0'; /*2번*/ char str[] = "hello"; /*3번*/ char *str = "hello";// 이 방법은 수정이 불가능하다는 점에서 위 두 방법과 다르다. string.h strcpy 문자열 복사 strlen 문자열의 길이 strcat 문자열 합치기 strcmp 문자열 비교 #define _CRT_SECURE_NO_WARNINGS #include #define BUFFER_SIZE 100 /* 마지막에 입력한 문자열로 전부 출력됨 -> buffer에 저장된 값이 아닌 buffer의 주솟값이 저장되기 때..
-
자료구조 제1강자료구조 2022. 1. 9. 18:15
배열, 포인터, 문자열, 동적메모리할당 포인터: 메모리 주소를 값으로 가지는 변수 선언 방법 -> type-name * variable-name; ex) int * ptr; 연산자 &: 변수로부터 그 변수의 주소를 추출하는 연산자 포인터와 배열 int a[10]; // 10개의 정수를 수용할 수 있는 메모리 (40바이트)가 할당됨 * 배열의 이름은 배열의 시작 주소를 저장하는 포인터 변수임 #include int main() { int sum, i, average; int num[10]; for (i = 0; i < 10; i++) scanf("%d", &num[i]); sum = calculate_sum(num); average = sum / 10; printf("%d\n", average); retu..