C语言实现翻译功能

本文实例为大家分享了C语言实现翻译功能的具体代码,供大家参考,具体内容如下

#include<stdio.h>
#define number 100
struct date
{
 char chinese[30];
 char English[30];

}a[number];
void copy(char *str1, char *str2, int counst)//将值赋给trans
{
 int i = 0;
 if (str2 == ' ' || str2 == '\0')
 {
 return;
 }
 while (counst--)
 {
 *str1++ = *str2++;

 }
 return;

}

int panduan(char *d, char *f)//判断是否相等
{
 char *str1 = d, *str2 = f;
 int xc=0;
 while (!(xc = *str2 - *str1)&&*str1)
 {
 str1++;
 str2++;

 }
 if (xc != 0)
 {
 return 0;
 }
 return 1;

}
char* ry( struct date a[number],char *wordtemp,int x)
{
 for (int i = 0;i<x; i++)
 {
 if (panduan(a[i].English, wordtemp))
 {
 return a[i].chinese;
 }
 }
 return "NULL";
}
int main()
{
 char b;
 int x;
 int exit=0;
 char str[50];
 printf("[请先输入英文单词,再输入拼音,中间以空格隔开,当输入*时结束]\n");
 for (int i=0;; i++)
 {
 printf("第[%d]组:\t", i+1);
 scanf("%[^' ']", a[i].English);
 scanf("%c", &b);
 scanf("%[^\n]", a[i].chinese);
 scanf("%c", &b);
 if (*a[i].English == '*'&&*a[i].chinese == '*')
 {
 x = i;
 break;
 }
 }
 printf("[请输入你所要翻译的内容]\n");
 scanf("%[^\n]", str);
 printf("|翻译的结果为|:\n");
 for (int i = 0;; i++)
 {
 if (str[i] != ' ')
 {
 char Trans[100];
 int n = 0;
 if(str[i]!=' ')
 {
 while (!(str[i] == ' ' || str[i] == '\0'))
 {
 n++;
 i++;
 if (str[i] == '\0')
 {
  exit = 1;
 }
 }
 copy(Trans, &str[i - n], n);
 Trans[n] = '\0';
 printf("[%s]", ry(a,Trans,x));
 }
 if (exit)
 {
 break;
 }

 }
 }

 system("pause");
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C语言 实现N阶乘的程序代码

    代码如下所示: 复制代码 代码如下: #include <stdio.h>#include <stdlib.h>#define N 10 //算N的阶乘int main(){       //数组   1位 1!    int ary[N] = {1, 1};    int i, j;    for (i = 2; i <= N; i++)    {        //各个下标的阶乘,第0位下标是位数,所以从第1位开始        for (j = 1; j <= a

  • 利用C语言结构体实现通讯录

    本文实例为大家分享了C语言结构体实现通讯录的具体代码,供大家参考,具体内容如下 用来存储1000个人的信息的通讯录,每个人的信息包括: 姓名.性别.年龄.电话.住址 程序如下: #include<stdio.h> #include<string.h> #include<stdlib.h> struct People { char name[20]; char sex[5]; int age; char tel[15]; char addr[50]; }; //定义人的信

  • C语言简单实现快速排序

    快速排序是一种不稳定排序,它的时间复杂度为O(n·lgn),最坏情况为O(n2):空间复杂度为O(n·lgn). 这种排序方式是对于冒泡排序的一种改进,它采用分治模式,将一趟排序的数据分割成独立的两部分,其中一组数据的每个值都小于另一组.每一趟在进行分类的同时实现排序. 其中每一趟的模式通过设置key当基准元素,key的选择可以是数据的第一个,也可以是数据的最后一个.这里以每次选取数据的第一个为例: 具体代码实现: #include<stdio.h> #define N 6 int fun(i

  • C语言实现餐饮点餐管理系统

    本文实例为大家分享了C语言实现餐饮点餐管理系统的具体代码,供大家参考,具体内容如下 具体代码如下 /* 项目名称:南航餐饮管理系统 组员:梁文新,刘青林,刘艺,施瑞文(组长) */ //当注册用户名为:root,密码为:root的账号时,系统默认为初始管理员 //头文件 #include<stdio.h> #include<stdlib.h> #include<time.h> #include<conio.h> #include<windows.h&g

  • C语言测试n的阶乘和x的n次方

    题目描述 输入一个正数x和一个正整数n,求下列算式的值.要求定义两个调用函数:fact(n)计算n的阶乘:mypow(x,n)计算x的n次幂(即xn),两个函数的返回值类型是double. ×输出保留4位小数. 输入 x n 输出 数列和 样例输入 2.0 3 样例输出 1.3333 答案 /************************************************************************* > File Name: 2.c > Author: &

  • 如何写出优美的C语言代码

    面向对象的语言更接近人的思维方式,而且在很大程度上降低了代码的复杂性,同时提高了代码的可读性和可维护性,传统的 C 代码同样可以设计出比较易读,易维护,复杂度较低的优美代码,本文将通过一个实际的例子来说明这一点. 基础知识 结构体 除了提供基本数据类型外,C 语言还提供给用户自己定制数据类型的能力,那就是结构体,在 C 语言中,你可以用结构体来表示任何实体.结构体正是面向对象语言中的类的概念的雏形,比如: typedef struct{ float x; float y; }Point; 定义了

  • C语言实现病例管理系统

    本文实例为大家分享了C语言实现病例管理系统的具体代码,供大家参考,具体内容如下 通过十字交叉链表实现一个病例管理系统,可以查找.删除.更新信息. #include"stdio.h" #include"stdlib.h" #include"string.h" typedef struct hospital_info{ char dise_num[10]; /*病历编号*/ char ke[10]; /*门诊科别*/ char date[11]; /

  • C语言数组栈实现模板

    本文实例为大家分享了C语言数组栈实现模板的具体代码,供大家参考,具体内容如下 SeqStack.h #pragma once #define MAX_SIZE 1024 typedef struct SEQSTACK { void* data[MAX_SIZE]; int size; }SeqStack; SeqStack* Init_SeqStack(); // 初始化栈 void Push_SeqStack(SeqStack* stack, void* data); // 入栈 void*

  • C语言实现词法分析器

    问题描述: 用C或C++语言编写一个简单的词法分析程序,扫描C语言小子集的源程序,根据给定的词法规则,识别单词,填写相应的表.如果产生词法错误,则显示错误信息.位置,并试图从错误中恢复.简单的恢复方法是忽略该字符(或单词)重新开始扫描. 相关词法规则 <标识符>::=<字母> <标识符>::=<标识符><字母> <标识符>::=<标识符><数字> <常量>::=<无符号整数> <无

  • C语言实现简单翻译功能

    本文实例为大家分享了C语言实现翻译功能的具体代码,供大家参考,具体内容如下 题目描述:编写一个程序,依次输入英文与汉语拼音,输入两个" * "表示输入结束,再输入一段英语句子,打印出其对应汉语拼音. 要求:不得使用<string.h>头文件 题目中要求不得使用<string.h>提醒我们使用其中的函数来编写代码,不过函数的实现需要自己来思考,根据自己的需要可以调整原函数的功能.思路大致是:输入完毕后拿原结构体记录的英文内容与 a 中的单词逐个相比,若相同,则输出

  • C语言数组a和&a的区别讲解

    面试经典题目 #include "stdio.h" int main() { int a[5] = { 1,2,3,4,5 }; int *ptr = (int *)(&a + 1); printf("%d,%d", *(a + 1), *(ptr - 1)); /*getchar是用VS编写方便查看输出*/ getchar(); return 0; } 请思考一下上面的输出结果,如果你非常自信了,可以不用往下看 题目剖析 这个题目主要考察&a 和 

随机推荐