hdu 1736 水

来源:互联网 发布:华为大数据开发工程师 编辑:程序博客网 时间:2024/06/14 06:24

题目链接

这题有点小坑,看网上说出现 “ " 要输出 “ ” 。

中文的引号是两个字节第一个是负的左引号第二个是-80,右引号第二个是-79


#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<cstdlib>#include<cmath>#include<queue>#include<map>#include<set>#define max(a,b) a>b?a:b#define min(a,b) a<b?a:busing namespace std;char ch[1111111];int main() {    while(gets(ch)) {        int f=0;        for(int i=0; ch[i]; i++) {            char c=ch[i];            if(c==',')printf(",");            else if(c=='.')printf("。");            else if(c=='!')printf("!");            else if(c=='<'&&ch[i+1]=='<'){                printf("《");                i++;            }            else if(c=='>'&&ch[i+1]=='>'){                printf("》");                i++;            }            else if(c=='?')printf("?");            else if(c=='"') {                if(f==0){                    printf("“");                    f=1;                }                else {                    f=0;                    printf("”");                }            }            else printf("%c",c);            if(c<0&&ch[i+1]==-80){                f=1;            }            if(c<0&&ch[i+1]==-79){                f=0;            }        }        cout<<endl;    }    return 0;}


1 0