用C语言编写一个简单翻译程序LZ的那种方法可以实现,但很显然是不实用,因为那样记录的也太多了吧,,,
我觉得,你可以记录下常用的特殊短语 像: helloChina就可以了,因为很大一部分就是按照顺序翻译的,“有道”也经常出现这种问题的,以下是自己在用参考“有道”的时候的实现的一些想法,可以作为参考:
如果想智能点的话,你就得“教会”这个 【 英语和汉语 】这两门课教的方法,就是把你会的东西全都教给他,比如说:
首先,你可以为每个单词定义一个struct数据结构 , 里面包含的是这个单词的 1. 【字义】(一个单词总不止一个意思吧)2.【词性】(你学习语法的时候要用到吧)3.【其他】(词组了什么的,有发音功能的话还得记录音标吧、、呵呵)
然后,要教它语法吧、、、这其实是最难的,语法就相当于你的算法了,程序的灵魂所在;
这也许就是C一直吸引着我们的地方 , 将抽象变为具体,呵呵、、祝你学习愉快、、、
C语言 函数有哪些 中文翻译都是什么意思1.i/o函数
(1)scanf函数c语言自行翻译函数:
int
scanf(const
char
*format…..);
从标准输入流stdin中按格式format将数据写到参数表中;若操作成功,返回写到参数表中的参数个数,否则返回eof;
注意以下几点:
①scanf函数没有精度控制
如出现:
scanf(“%6.2f”,a);
是绝对错误的
②在以%c格式输入字符数据时c语言自行翻译函数 , 所有输入的均为有效字符
如c语言自行翻译函数:
scanf(“%c%c%c”,a,b,c);
输入:d
e
f
则a=’d’,b为空格字符'
',c=’d’
如果以%s读入字符串,则空格键和回车键都可以作为输入结束的标志
如:
scanf(“%s%s”,p,q);---------p,q均为指针
输入:hello
world与
hello
world
效果是相同的 , p均指向hello这个字符串,q均指向world这个字符串
③如果在格式控制字符串中有非格式字符,则输入时要照原样入c语言自行翻译函数;
如:
scanf(“%d,%d,%d,”,,b,c);
则输入时必须加上逗号:5,6,7
④如果同while配合用的话,则需注意去掉回车键
如有下面一段程序:
while(scanf(“%d”,n)==1n!=0)
{
char
ch;
scanf(“%c”,ch);
printf(“%c\n”,ch);
}
则输出结果是:
2
3
结果表明ch字符是回车键
所以如果要消除影响:
有两种方法:
1)加上getchar()c语言自行翻译函数;
while(scanf(“%d”,n)==1n!=0)
{
getchar();
char
ch;
scanf(“%c”,ch);
printf(“%c\n”,ch);
}
2)在while中加上%*c
while(scanf(“%d%*c”,n)==1n!=0)即可
2.数学函数
(1)求绝对值
double
fabs(double
);
float
fabsf(float);
long
double
fabsl(long
double);
int
abs(int);
long
int
labs(long
int);
(2)floor函数:返回不大于参数的整数
float
floor(float);
double
floor(double);
(3)ceil函数:返回不小于参数的整数
float
ceil(float);
double
floor(double);
(4)pow:返回x^y;
double
pow(double
x,double
y);
(5)sqrt:返回x的开方
double
sqrt(double
x);
(6)log2,log10:返回底数的自然对数值
double
log2(double
x);
double
log10(double
x);
3.字符串处理函数
(1)char
*strchr(const
char
*str,int
ch);
返回str中第一次出现字符ch的位置指针,否则返回null;
(2)char
*strstr(const
char
*str1,const
char
*str2);
返回str1中第一次出现str2的位置指针 , 否则返回null;
(3)int
stricmp(const
char
*str1,const
char
*str2);
忽略字符的大小写进行比较
(4)int
strncmp(const
char
*str1,const
char
*str2,int
count);
将str1前n个字符与str2的前n个字符进行比较
(5)char
*strncpy(char
*str1,const
char
*str2,int
count);
将str2的前n个字符复制到str1中
(6)char
*strrev(char
*str);
将字符串str逆序,并返回逆置后的结果
4.常用使用函数
(1)double
atof(const
char
*str);
将字符串str表示的数转换成浮点数
(2)int
atoi(const
char
*str);
将字符串str表示的数转换成整数
(3)void
qsort(void
*buf,int
count,int
size,cmp);————count为所需要进行排序的元素个数,size为每个元素所占用的空间
快速排序
如何用C语言来制作翻译器写了一个简单的翻译器,只提供单词翻译 , 中文到英文,英文到中文都行 , 你需要首先进行字典录入 。录入以后会自动在目录下生成一个dic.txt文件 。
#include "stdio.h"
#include "stdlib.h"
#include "string.h"
#define FILENAME "dic.txt"
struct word//字典结构体
{
char chinese[20];//中文
char english[20];//英文
};
/////////////////////////////////////////////////////////////
FILE *FP;//全局文件指针
FILE * FileOpen(char FileName[])//文件打开函数
{
FILE *fp;
if((fp=fopen(FileName,"r"))==NULL)
{
fp=fopen(FileName,"w");
cout"文件打开失败重新创建记录文件";
return fp;
}
fp=fopen(FileName,"a ");
return fp;
}
void FileClose(FILE *fp)//文件关闭函数
{
if(fclose(fp)==0)
cout"安全关闭"endl;
else
cout"文件关闭失败"endl;
}
////////////////////////////////////////////////////////////////
void tra1()//中文翻译成英文模块
{
FILE *fp;
if((fp=fopen(FILENAME,"r"))==NULL)
{
printf("文件打开失败!");
}
char tempchinese[20];
word temp;
printf("请输入中文单词:");
scanf("%s",tempchinese);
while(fread(temp,sizeof(word),1,fp)==1)
{
if(strcmp(temp.chinese,tempchinese)==0)
{
printf("中文:%s英文:%s \n",temp.chinese,temp.english);
}
}
printf("查找完毕!");
FileClose(fp);
}
//////////////////////////////////////////////
void tra2()//英文翻译成中文模块
{
FILE *fp;
if((fp=fopen(FILENAME,"r"))==NULL)
{
printf("文件打开失败!");
}
char tempenglish[20];
word temp;
printf("请输入英文单词:");
scanf("%s",tempenglish);
while(fread(temp,sizeof(word),1,fp)==1)
{
if(strcmp(temp.english,tempenglish)==0)
{
printf("中文:%s英文:%s \n",temp.chinese,temp.english);
}
}
printf("查找完毕!");
FileClose(fp);
}
////////////////////////////////////////////////
void inp()//字典录入模块
{
FP=FileOpen(FILENAME);
word temp;
printf("请输入英文:");
scanf("%s",temp.english);
printf("请输入对应中文:");
scanf("%s",temp.chinese);
fwrite(temp,sizeof(temp),1,FP);
printf("信息添加完成");
FileClose(FP);
}
////////////////////////////////////////////////
int menu()//主目录模块
{
int choose;
while(choose!=0)
{
printf("\n");
printf("简易中英翻译系统\n");
printf("1、中-英翻译\n");
printf("2、英-中翻译\n");
printf("3、字典录入\n");
printf("输入0退出系统\n");
printf("请输入:");
scanf("%d",choose);
switch(choose)
{
case 0:return 0;break;
case 1:tra1();break;
case 2:tra2();break;
case 3:inp();break;
}
}
}
///////////////////////////////////////////////////////
void main()
{
menu();
}
【c语言自行翻译函数 c语言语句翻译】c语言自行翻译函数的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于c语言语句翻译、c语言自行翻译函数的信息别忘了在本站进行查找喔 。
推荐阅读
- 微信直播开场秀,微信现场直播是怎么弄
- 为什么ios开发,为什么iOS开发界面布局这么麻烦
- 项城网站如何做推广效果好,项城网站设计公司
- 农商银行手机怎么认证身份,农商银行认证方式
- 千牛windows系统的简单介绍
- linux打不开命令行,linux为什么打不开软件
- 粗大动作有哪些游戏,粗大动作有哪些游戏名称
- 如何查看oracle的包 oracle查看包里的存储过程
- 鸡汤来了什么视频,鸡汤 视频