共回答了20个问题采纳率:95%
#include
#include
#include
#define szSTR 32
struct TWordPair {
char A[szSTR];
char B[szSTR];
} Dict[] = {
{"auto", "声明自动变量 一般不使用"},
{"double", "声明双精度变量或函数"},
{"int", "声明整型变量或函数"},
{"struct","声明结构体变量或函数"},
{"break","跳出当前循环"},
{"else","条件语句否点分支(与if连用)"},
{"long","声明长整型变量或函数"},
{"switch","用于开关语句"},
{"case","开关语句分支"},
{"enum","声明枚举类型"},
{"register","声明积存器变量"},
{"typedef","用以给数据类型取别名"},
{"char","声明字符型变量或函数"},
{"extern","声明变量是在其他文件正声明"},
{"return","子程序返回语句"},
{"union","声明联合数据类型"},
{"const","声明只读变量"},
{"float","声明浮点型变量或函数"},
{"short","声明短整型变量或函数"},
{"unsigned","声明无符号类型变量或函数"},
{"continue","结束当前循环,开始下一轮循环"},
{"for","一种循环语句"},
{"signed","声明有符号类型变量或函数"},
{"void","声明函数无返回值或无参数,声明无类型指针"},
{"default","开关语句中的“其他”分支"},
{"goto","无条件跳转语句"},
{"sizeof","计算数据类型长度"},
{"volatile","说明变量在程序执行中可被隐含地改变"},
{"do","循环语句的循环体"},
{"while","循环语句的循环条件"},
{"static","声明静态变量"},
{"if","条件语句"},
{"bye", "再见"}
};/*end dict*/
char * translate(const char * source)
{
int i = 0; struct TWordPair * p = 0;
int c = 0; int sz = sizeof(Dict) / sizeof(struct TWordPair);
for(i = 0; i < sz; i++) {
p = Dict + i;
c = strcmp(source, p->A);
if (c == 0) return p->B;
c = strcmp(source, p->B);
if (c == 0) return p->A;
}
return 0;
}
int main(void)
{
char ch; char source[szSTR] = ""; char * result = 0; int c = 0;
FILE * fp;
if((fp=fopen("dic.dat","r"))==NULL)
{
printf("Cannot open this file!n");
exit(0);
}
printf("dic.dat文件中的信息为:n");
while(!feof(fp))
{
fscanf(fp,"%c",&ch);
printf("%c",ch);
}
fclose(fp);
printf("nnnnnnnn");
printf("请输入一个关键字的英文或中文名: nnnn");
do {
scanf("%s", source);
result = translate(source);
if (result)
printf("“%s”的意思是“%s”n", source, result);
else
printf("当前字典内无“%s”n", source);
c = strcmp("bye", source);
}while(c);
return 0;
}
这是第一步和第二步。。。
1年前
10