本文实例为大家分享了C语言实现翻译功能的具体代码,供大家参考,具体内容如下
题目描述:编写一个程序,依次输入英文与汉语拼音,输入两个“ * ”表示输入结束,再输入一段英语句子,打印出其对应汉语拼音。
要求:不得使用<string.h>头文件
题目中要求不得使用<string.h>提醒我们使用其中的函数来编写代码,不过函数的实现需要自己来思考,根据自己的需要可以调整原函数的功能。思路大致是:输入完毕后拿原结构体记录的英文内容与 a 中的单词逐个相比,若相同,则输出结构体中对应的汉语拼音。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
#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;
}
|
下面是程序示例:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/Poppy991122/article/details/80081422