Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- edge trigger
- doupdate
- wnourefresh
- Docker
- epoll_wait
- REDIS
- cbpf
- 어셈블리어
- mvwin
- .net core 7
- iptables
- 취약점
- level trigger
- LOB
- DOCKER-USER
- wrefresh
- packet filter
- architecture
- BOF
- ncurses
- ioctl
- NAPT
- .nret core 배포
- C언어
- rfc5508
- 풀이
- packet flow
- vtable
- epoll
- Compiler
Archives
- Today
- Total
Tuuna Computer Science
배열을 대상으로 만든 여러 사용자 정의 함수 (헤더파일 제작) 본문
요즘 파이썬을 쓰다보니(물론 only 절차) 파이썬의 리스트에 대한 여러 메소드가 너무 매력적이였다...
그래서 파이썬처럼 하고자 C에서 헤더파일을 만듦.
간단하게
/*
[How to use?]
array_pop(int* ptr, int number, int size); 특정 원소를 꺼낸다.
int sort(int* ptr, int size); 오름차순 정렬
int array_sum(int* ptr, int size); 배열원소의 합을 구함
int array_index(int* ptr, int number, int size); 원하는 문자의 인덱스를 뽑아온다.
int sort_reverse(int* ptr, int size); 내림차순 정렬
int remove_overlapped(int* array_pop(int* ptr, int ch , int n) ;중복 제거
*/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | int array_pop(int* ptr, int ch , int n) { int i; for(i=0;i<n;i++) { if(ptr[i] == ch) { break; } } for(i;i<n-1;i++) { ptr[i] = ptr[i+1]; } ptr[n-1] = 0; } int sort(int* ptr, int n) { int i; int j; int tmp; if(n == 0) { return -1; } for(i=0;i<n;i++) { for(j=i;j<n-1;j++) { if(ptr[i] > ptr[j+1]) { tmp = ptr[i]; ptr[i] = ptr[j+1]; ptr[j+1] = tmp; } } } return 1; } int array_sum(int* ptr, int n) { int i; if(n == 0) { return -1; } int sum=0; for(i=0;i<n;i++) { sum +=ptr[i]; } return sum; } int array_index(int* ptr,int ch, int n) { int i; if(n == 0) { return -1; } for(i=0;i<n;i++) { if(ptr[i] == ch) { return i; } } if(i == n) { return -1; } } /* int append(int* ptr, int n) { }*/ int sort_reverse(int* ptr, int n) { int i; int j; int tmp; if(n == 0) { return -1; } for(i=0;i<n;i++) { for(j=i;j<n-1;j++) { if(ptr[i] < ptr[j+1]) { tmp = ptr[i]; ptr[i] = ptr[j+1]; ptr[j+1] = tmp; } } } return 1; } void remove_overlapped(int* ptr, int n) { int check_array=0; int check=0; int* temp = (int*)malloc(n*sizeof(int)); int j; int i; int tmp=0; for(i=0;i<n;i++) { temp[i] = 0; } for(i=0;i<n;i++) { for(j=0;j<n;j++) { if(temp[j] == ptr[i]) { check_array=1; break; } } if(check_array == 1) { check_array=0; continue; } else{ temp[tmp] = ptr[i]; tmp++; check_array=0; } } for(i=0;i<n;i++) { ptr[i] = temp[i]; } free(temp); } | cs |
'C language' 카테고리의 다른 글
시저암호 암호화 복호화 소스 (0) | 2018.11.02 |
---|---|
[C Language] 배열없이 문자열의 빈도수 구하기 (0) | 2018.10.26 |
[C 언어] PE View tool 제작하기 (노가다 소스코드) (0) | 2018.09.05 |
Logic_Game1 Aegis Royale ~ , ~ (0) | 2018.08.18 |
[ C 언어 ] 포인터 처음 배울 때 보면 좋은 예제 (0) | 2018.08.05 |
Comments