배열과 포인터를 가지고 문자를 검색 하는 것입니다. 주석좀 달아주세요 ㅠㅠ
희라
질문 제목 : 배열과 포인터를 가지고 문자를 검색 하는 것입니다. 주석좀 달아주세요 ㅠㅠ주석좀 달아주세요 ㅠㅠ질문 내용 :
#include stdio.h
#include string.h
void print(char *[], int);
void exchange(char **, char **);
void line_up(char *[], int);
int search(char *[], int, char *);
void main()
{
char *str[5];//포인터배열 6개
char word[20];//검색할 단어
int index;//검색할 단어가 있는 위치
int count=sizeof(str)/sizeof(str[0]); //포인터 배열의 크기 구하기
str[0]=horse;
str[1]=dog;
str[2]=tiger;
str[3]=elephant;
str[4]=lion;
printf(==inputed word==\n);
print(str,count);//출력함수 호출
line_up(str,count);//정렬함수 호출
printf(\n==sorted word==\n);
print(str,count);//정렬된 단어들 출력
printf(\ninput word for searching\ninput: );
scanf(%s,word);
index=search(str, count, word);//검색한 결과 받아오기
if(index0)//검색한 단어가 없으면?
{
printf(no result\n);//단어가 없음을 출력
}
else//검색한 단어가 있으면
{
printf(this word in index #%d\n, index);//단어의 위치 출력
}
}
void print(char *ary[], int count)
{
for(int i=0; icount; i++)
printf(%s\n, ary[i]);
printf(\n);
}
void exchange(char **a, char **b)
{
char *temp;
temp=*a;
*a=*b;
*b=temp;
}
void line_up(char *ary[], int count)
{
int i, j, res;
for(i=0; icount-1; i++)
{
for(j=i+1; jcount; j++)
{
res=strcmp(ary[i],ary[j]);
if(res0)
exchange(&ary[i],&ary[j]);
}
}
}
int search(char *ary[], int count, char *word)
{
int res;
int st, c, ed;
st=0;
ed=count-1;
while(st=ed)
{
c=(st+ed)/2;
res=strcmp(ary[c],word);
if(res==0)
return c;
else if(res0)
st=c+1;
else
ed=c-1;
}
return -1;
}