今天就跟大家聊聊有关使用C语言怎么实现一个翻译功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
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语言怎么实现一个翻译功能有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。