안녕하세요 프로그래밍 초보자입니다 (_ _)
terms.txt 문서에서 사전식 검색이 가능한 간단한 프로그램인데요..
코딩들이 어떤과정들을 거쳐서 이러한 결과값이 나왔나 단어검색 프로그램의 논리 흐름을 알고싶습니다.
코딩 옆에 주석처럼 달아주셔서 알려주시면 감사하겠습니다!!
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<windows.h>
char terms[50][40];
char *file_name=\"terms.txt\";
void load_data(int *number);
void search_data(char data[][40], int number);
void sort_data(char data[][40], int number);
void upper_to_lower(char str[]);
void gotoxy(int x, int y);
int main(void)
{
int number;
load_data(&number);
sort_data(terms, number);
search_data(terms, number);
return 0;
}
void search_data(char data[][40], int number)
{
char input[40] = {\'\\0\'}, temp[40]={\'\\0\'};
int i, length, count1=0, count2=0;
do
{
gotoxy(1,1);
printf(\"용어입력>\");
length=strlen(input);
gotoxy(11+length,1);
input[count1]=getch();
system(\"cls\");
gotoxy(11,1);
printf(\"%s\", input);
gotoxy(1,3);
count2=0;
for(i=0; i<number; i++)
{
strcpy(temp, data[i]);
upper_to_lower(temp);
if(strncmp(temp, input, count1+1)==0)
{
printf(\"%-40s\\n\", data[i]);
count2++;
if(count2>5)
break;
}
}
if(input[count1]==27)
break;
count1++;
}while(1);
}
void sort_data(char data[][40], int number)
{
int i,j,min;
char temp1[39], temp2[39];
for(i=0; i<number-1; i++)
{
min =i;
for(j=i+1; j<number; j++)
{
strcpy(temp1, data[j]);
strcpy(temp2, data[min]);
upper_to_lower(temp1);
upper_to_lower(temp2);
if(strcmp(temp1, temp2)<=0)
min=j;
}
strcpy(temp1, data[min]);
strcpy(data[min], data[i]);
strcpy(data[i], temp1);
}
}
void gotoxy(int x, int y)
{
COORD Pos = {x-1, y-1};
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), Pos);
}
void load_data(int *number)
{
FILE *fp;
*number=0;
fp=fopen(file_name, \"r\");
if(fp==NULL)
{
printf(\"file open error!\\n\");
exit(1);
}
while(!feof(fp))
{
fgets(terms[*number], 39, fp);
(*number)++;
}
fclose(fp);
}
void upper_to_lower(char str[])
{
int i, length;
length=strlen(str);
for(i=0;i<length; i++)
str[i]=tolower(str[i]);
}
ㅅㅂ
존1나길어 세줄요약좀.... 아 요약해달라는 질문글이였지
ㅋㅋㅋㅋㅋ
ㅋㅋㅋ존나염치없네 해볼생각도없이 [핡]