一道大水题,居然放了好几个星期才过,无语。。。。
#include <stdio.h>
#include <string.h>
int main()
{
char s[100000], tmp[3];
while(gets(s) != NULL)
{
int i = 0, flag = 0;
tmp[2] = 0;
while(s[i])
{
tmp[0] = s[i]; tmp[1] = s[i+1];
if(!strcmp(tmp, "“") || !strcmp(tmp, "”"))
flag = !flag;
switch(s[i])
{
case '.':printf("。");break;
case ',':printf(",");break;
case '?':printf("?");break;
case '!':printf("!");break;
case '<':if(s[i+1] == '<')
{printf("《");i++;}
else printf("<");break;
case '>':if(s[i+1] == '>')
{printf("》");i++;}
else printf(">");break;
case '"':if(flag)printf("”");
else printf("“");
flag = !flag; break;
default:printf("%c",s[i]);
}
i++;
}
printf("\n");
}
return 0;
}