공부/- 포인터
[C 언어] 포인터를 이용한 sort, swap 함수 구현
고무함지
2016. 6. 1. 08:59
Pointer(포인터)를 이용해서, 문자열을 알파벳 순서로 정렬(sort)하는 예제 코드 입니다.
어제 포스팅한 single linked list의 3번째 예제처럼 포인터의 포인터(포인터의 주소)를
전달하여, swap함수에서 두 자료를 교환하고 있습니다.
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 | // swap 함수 2016/6/1 void swap(char **a, char **b); void sort(char *ary[], int cnt); void swap(char **a, char **b) { char *temp; temp = *a; *a = *b; *b = temp; } //sort a, b, c... void sort(char *ary[], int cnt) { int i, j, min; for (i = 0; i < cnt - 1; i++) { min = i; for (j = i + 1; j < cnt;j++) { if (strcmp(ary[min], ary[j]) > 0) min = j; } swap(&ary[min], &ary[i]); } } void main(void) { int i; char *arr[] = { "abecd", "ddbeeddd", "cedvae","hhxxz" }; sort(arr, 4); for (i = 0; i < 4; i++) { printf("%s, ", arr[i]); } printf("Good bye\n"); } | cs |