C语言实现简单翻译功能

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

题目描述:编写一个程序,依次输入英文与汉语拼音,输入两个“ * ”表示输入结束,再输入一段英语句子,打印出其对应汉语拼音。

要求:不得使用<string.h>头文件

题目中要求不得使用<string.h>提醒我们使用其中的函数来编写代码,不过函数的实现需要自己来思考,根据自己的需要可以调整原函数的功能。思路大致是:输入完毕后拿原结构体记录的英文内容与 a 中的单词逐个相比,若相同,则输出结构体中对应的汉语拼音。

#include <stdio.h>

#include <stdlib.h>

#define M 100

struct tran //建立结构体,将英文与对应的汉语拼音存储在一起

{

char English[M];

char Chinese[M];

}n[M];

int my_strlen(char a[]); //声明自定义测量数组长度的函数

int my_strcmp(char* str1,char* str2); //声明自定义判断两个字符串是否相同的函数

int main()

{

int i=1,j,k;

char a[M],*p=a;

printf("请首先输入英文,然后输入汉语拼音:\n");

while(n[i-1].English[0]!='*'||n[i-1].Chinese[0]!='*') //当输入两个“ * ”时输入终止

{

printf("请输入第%d组\t\t",i);

scanf("%s%s",n[i].English,n[i].Chinese);

i++;

}

printf("请输入一个句子\n");

getchar(); //接收上一个回车,避免下一个scanf()无法输入

scanf("%[^\n]",a);

for(i=0;a[i]!='\0';i++)

{

if(my_strcmp(p,n[i].English)==1)

{

p=p+my_strlen(n[i].English)+1; //使p指针后移,指向第二个单词

printf("%s ",n[i].Chinese);

i=-1; //使下次循环 i = 0

}

}

printf("\n");

system("pause");

return 0;

}

int my_strcmp(char* str1,char* str2)

{

int flag=0;

while(*str1==*str2)

{

str1++;

if(*str1=='\0'||' ')

{

flag=1;

return 1;

}

else

str2++;

}

if(flag==0)

return 0;

}

int my_strlen(char a[])

{

int i,k=0;

for(i=0;a[i]!='\0';i++)

{

k++;

}

return k;

}

下面是程序示例:

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

以上是 C语言实现简单翻译功能 的全部内容, 来源链接: utcz.com/p/244315.html

回到顶部