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");
}

发布了29 篇原创文章 · 获赞 24 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/yyk219/article/details/79989021