头文件
#pragma once
typedef struct DICT
{
char* word;
char* trans;
}dict;
dict* list = NULL;
int GetWords();
int Searchword(char* word,char*trans);
void DestroySpace();
源文件
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <malloc.h>
#include <string.h>
#include"dict.h"
#define SIZE 3
int GetWords()
{
FILE* fp = fopen("D:/c.txt", "r");
if (!fp)
{
printf("加载单词库失败!\n");
return -1;
}
list = (dict*)malloc(sizeof(dict) * SIZE);
int i = 0;
char* temp = (char*)malloc(sizeof(char) * 1024);
while (!feof(fp))
{
memset(temp, 0, 1024);
fgets(temp, 1024, fp);
temp[strlen(temp)-1] = 0;
list[i].word = (char*)malloc(sizeof(char) * strlen(temp) + 1);
strcpy(list[i].word, &temp[1]);
memset(temp, 0, 1024);
fgets(temp, 1024, fp);
temp[strlen(temp) - 1] = 0;
list[i].trans = (char*)malloc(sizeof(char) * strlen(temp) + 1);
strcpy(list[i].trans, &temp[6]);
i++;
}
fclose(fp);
free(temp);
for (int i = 0; i < SIZE; i++)
{
printf("%s\n", list[i].word);
printf("%s\n", list[i].trans);
}
return i;
}
int Searchword(char* word, char* trans)
{
if (!word || !trans)
{
printf("运行异常!\n");
}
for (int i = 0; i < SIZE; i++)
{
if (!strcmp(word, list[i].word))
{
strcpy(trans, list[i].trans);
return 0;
}
}
return 1;
}
void DestroySpace()
{
if (!list)
return;
for (int i = 0; i < SIZE; i++)
{
free(list[i].word);
free(list[i].trans);
}
free(list);
list = NULL;
}
int main(void)
{
GetWords();
char* word = (char*)malloc(sizeof(char) * 1024);
char* trans = (char*)malloc(sizeof(char) * 1024);
while (1)
{
memset(word, 0, 1024);
scanf("%s", word);
if (!strcmp(word, "comm=exit"))
{
break;
}
if (!Searchword(word, trans))
{
printf("%s\n", trans);
}
else
{
printf("未找到单词。。。\n");
}
}
DestroySpace();
return 0;
}