缩略语字符串翻译为日常用语字符串的实现

来源:互联网 发布:灰色模型软件 编辑:程序博客网 时间:2024/05/20 00:38
#include<stdio.h>#include<string.h>void replace_func(); char target_str[100];//存放需要翻译的缩略语段char* boilerplate[6]={"PS","NLP","PM","HR","PMD","MD"};       //缩略语char* replacestr[6]={"门户搜索部","自然语言处理小组","产品市场部","人力资源部","产品推广部","市场发展部"}; //缩略语对应的日常用语 void main(){printf("请输入需转义语段\n");gets(target_str);replace_func();printf("%s",target_str);}void replace_func(){/*********************************************************利用字符对照将缩略语翻译为日常用语,特别的PMD与PM的翻译需要再对PM后一位字符进行比对才能正确翻译。*********************************************************/int i;char flag;char temp[80];for(i=0;i<=strlen(target_str);i++){flag=0;if(target_str[i]=='P')flag=1;if(target_str[i]=='N')flag=2;if(target_str[i]=='H')flag=3;if(target_str[i]=='M')flag=4;switch(flag){case 1:if(target_str[i+1]=='M')if(target_str[i+2]=='D')                   //满足PM后仍需验证下一位字符是否是D才能正确翻译PMD{strcpy(temp,target_str+i+3);                  //因为缩略语和对应的日常用语占用字符串长度不一,strcpy(target_str+i,replacestr[4]);           //故重新排列需要翻译的字符串。下同。strcpy(target_str+i+strlen(replacestr[4]),temp);}else{strcpy(temp,target_str+i+2);strcpy(target_str+i,replacestr[2]);strcpy(target_str+i+strlen(replacestr[2]),temp);}elseif(target_str[i+1]=='S'){strcpy(temp,target_str+i+2);strcpy(target_str+i,replacestr[0]);strcpy(target_str+i+strlen(replacestr[0]),temp);}break;case 2:if(target_str[i+1]=='L'&&target_str[i+2]=='P'){strcpy(temp,target_str+i+3);strcpy(target_str+i,replacestr[1]);strcpy(target_str+i+strlen(replacestr[1]),temp);}break;case 3:if(target_str[i+1]=='R'){strcpy(temp,target_str+i+2);strcpy(target_str+i,replacestr[3]);strcpy(target_str+i+strlen(replacestr[3]),temp);}break;case 4:if(target_str[i+1]=='D'){strcpy(temp,target_str+i+2);strcpy(target_str+i,replacestr[5]);strcpy(target_str+i+strlen(replacestr[5]),temp);}break;default:break;}}}

原创粉丝点击