셀맨1 2017. 1. 6. 01:38
반응형

문자열을 가리키고 있는 포인터의 배열을 인수로 받아서 문자열을 알파벳 순으로 정렬시키는 함수 sort_strings()를 작성하고 테스트하여 보라. 다음과 같은 원형을 가진다.


진짜 오래걸렸네요.. 괄호 안쳐서 2시간동안 해맸네요 짜증... ㅜ,ㅜ

각 포인터가 배열이니까 첫글자만 비교해서 서로 교환해주면 됩니다.. (교환하기 위해선 빈 물 컵이 있어야 한다는 것.. 잊지 않으셨죠??)

string[0] 은 포인터 string 은 이중포인터 tmp는 포인터 .. 점점 더 헷갈리는 느낌입니다.

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
#include <stdio.h>
#define SIZE 3
void sort_strings(char *s[], int size);
int main(void)
{
    char *string[SIZE]={"mycopy","src","dst"};
    int i;
    sort_strings(string,SIZE);
    for(i=0;i<SIZE;i++)
    {
    printf("%d번째 문자열 : %s\n", i, string[i]);
    }
    return 0;
}
void sort_strings(char *s[], int size)
{
    int i, j;
    char *tmp=NULL;
    for(i=0;i<size;i++){
    for(j=i+1;j<size;j++)
    {
    if(*s[i]>*s[j])
        {tmp=s[i];
    s[i]=s[j];
    s[j]=tmp;}
    }}
}
cs





반응형