语言翻译器代码

语言翻译器代码一种语言翻译为另外一种语言的代码,用VB做的
2025-06-28 04:21:04
推荐回答(1个)
回答1:

c语言 不是很熟悉。。。希望这个是你要的吧。 里面的数组长度需要你自己修改下。稍微难点的地方就是字符串的替换。我试过了 没有问题;
#include
#include
struct MWORD{
char eng[10];
char cn[255];
};

void str_replace(char * cp, int n, char * str)
{
int lenofstr;
int i;
char * tmp;
lenofstr = strlen(str);
//str3比str2短,往前移动
if(lenofstr < n)
{
tmp = cp+n;
while(*tmp)
{
*(tmp-(n-lenofstr)) = *tmp; //n-lenofstr是移动的距离
tmp++;
}
*(tmp-(n-lenofstr)) = *tmp; //move '\0'
}
else
//str3比str2长,往后移动
if(lenofstr > n)
{
tmp = cp;
while(*tmp) tmp++;
while(tmp>=cp+n)
{
*(tmp+(lenofstr-n)) = *tmp;
tmp--;
}
}
strncpy(cp,str,lenofstr);
}
//////
int main()
{
int n,i;
MWORD all[500];
char* p;
char destr[10000] ;
printf("输入词条条数:");
scanf("%d",&n);
if(n >= 500)
return 0;
for( i = 0;i < n;++i)
{
scanf("%s",all[i].eng);
getchar();
scanf("%s",all[i].cn);
getchar();
}
gets(destr);

for( i = 0;i < n;++i)
{
p = destr;
while (p = strstr(p,all[i].eng))
{
str_replace(p,strlen(all[i].eng),all[i].cn);
}
}
printf("%s",destr);
system("pause");//不知道c语言的暂停是不是这个
}