admin 管理员组

文章数量: 887007

hdoj 1736 美观化文字



.php?pid=1736

美观化文字

Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 3296    Accepted Submission(s): 719


Problem Description 请看下面两段文字:

Kenny喊道:"我来了!"

Kenny喊道:“我来了!”

前面一段文字中由于在中文中使用了英文标点,显得不太美观。本题中你的任务是让任意一段文字美观化。美观化具体要求为将以下字符(串)转换为对应的中文字符:

英文 中文,    ,.    。!    !"    “或” 
<<   《
>>    》?    ?


Input 输入文字只有一段。文字中可能含有中英文、符号以及控制符(换行、空格、制表符等)。


Output 按照要求输出美化后的文字段。 你不用翻译以上指定的符号之外的所有字符


Sample Input
  Kenny喊道:"我来了!"


Sample Output
  Kenny喊道:“我来了!”这题本身不难,只是要注意很多,代码后边附样例,通过样例应该就可以AC
#include<stdio.h>
#include<string.h>
int main()
{int n,i,j,J;char s[1000];while(gets(s)!=NULL){J=0;n=strlen(s);for(i=0;i<n;i++){if(s[i]<0)//中文字符 {printf("%c%c",s[i],s[i+1]);char c[3];//注意“"这种情况要变成“” c[0]=s[i];c[1]=s[i+1];c[2]='\0';if(strcmp(c,"“")==0)J=1; if(strcmp(c,"”")==0)J=0;i+=1;continue;}if(s[i]==','){printf(",");continue;}if(s[i]=='.'){printf("。");continue;} if(s[i]=='!'){printf("!");continue;} if(s[i]=='"'){if(J==0){printf("“");J=1;}else{printf("”");J=0;}continue;}if(s[i]=='<'&&s[i+1]=='<'){printf("《");i+=1;continue;}if(s[i]=='>'&&s[i+1]=='>'){printf("》");i+=1;continue;}if(s[i]=='?'){printf("?");continue;}printf("%c",s[i]);//除中文字符以外的都正常输出 } printf("\n");}	return 0;
}
//好“123好".""""" 
//输出:好“123好”。“”“”“ 

本文标签: hdoj 1736 美观化文字