HDU 1736 美观化文字 water~~~

题目地址:  http://acm.hdu.edu.cn/showproblem.php?pid=1736


一道很水的模拟题目。


代码如下:(有注释)

#include<iostream>
#include<vector>
#include<list>
#include<deque>
#include<queue>
#include<stack>
#include<map>
#include<set>
#include<algorithm>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<string>
#include<cmath>
using namespace std;

typedef long long LL;
const int N=201000;

char s[N];

int main()
{
    int i,j,T,t,n,m,a,b,sum;
    while(gets(s)!=NULL)
    {
        int len=strlen(s);
        sum=0;
        for(i=0;i<len;i++)
        {
            string temp="";
            temp=temp+s[i]+s[i+1];//这个地方不知道为什么不能写成temp+=s[i]+s[i+1];
            if(temp=="“"||temp=="”")//这个地方一定要注意,中文的引号不是一个字符
            {
                sum++;
            }
            //其他地方就没什么注意的呢,直接模拟
            if(s[i]=='"')
            {
                if(sum%2==0)
                    printf("“");
                else
                    printf("”");
                sum++;

            }
            else if(s[i]==',')
                printf(",");
            else if(s[i]=='.')
                printf("。");
            else if(s[i]=='!')
                printf("!");
            else if(s[i]=='?')
                printf("?");
            else if(s[i]=='<'&&s[i+1]=='<')
            {
                i++;
                printf("《");
            }
            else if(s[i]=='>'&&s[i+1]=='>')
            {
                i++;
                printf("》");
            }
            else
                printf("%c",s[i]);
        }
        printf("\n");
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值