比赛 |
暑假培训一 |
评测结果 |
AAAAAWAAAA |
题目名称 |
字符串的展开 |
最终得分 |
90 |
用户昵称 |
sezbz |
运行时间 |
0.000 s |
代码语言 |
C++ |
内存使用 |
0.00 MiB |
提交时间 |
2008-07-17 11:36:27 |
显示代码纯文本
#include <stdio.h>
#include <string.h>
#define maxn 110
int p1,p2,p3;
char s[maxn],ins[maxn][maxn*5];
FILE *f1,*f2;
void run(void)
{
int i,p,len,zan,l;
char j;
len=strlen(s);
zan=-1;
for (i=0;i<len;i++)
if (s[i]=='-')
if (s[i-1]<s[i+1])
if ((s[i-1]>='0' && s[i-1]<='9' && s[i+1]>='0' && s[i+1]<='9' )||
(s[i-1]>='a' && s[i-1]<='z' && s[i+1]>='a' && s[i+1]<='z'))
{
zan++;
l=0;
for (j=s[i-1]+1;j<s[i+1];j++)
for (p=0;p<p2;p++)
if (p1==3)
{
ins[zan][l++]='*';
}
else
{
if (s[i-1]>='a' && s[i+1]<='z' && p1==2)
{
ins[zan][l++]=j+'A'-'a';
}
else
{
ins[zan][l++]=j;
}
}
}
}
void ini(void)
{
char c;
fscanf(f1,"%d%d%d",&p1,&p2,&p3);
fscanf(f1,"%s",&s);
c=s[strlen(s)-1];
if ((c <'a' || c>'z') && (c<'0' || c>'9'))
s[strlen(s)-1]=0;
}
void print(void)
{
int i,j,len,zan;
len=strlen(s);
//处理p3
zan=-1;
for (i=0;i<len;i++)
{
if (s[i]=='-')
if (s[i-1]<s[i+1])
if ((s[i-1]>='0' && s[i-1]<='9' && s[i+1]>='0' && s[i+1]<='9' )||
(s[i-1]>='a' && s[i-1]<='z' && s[i+1]>='a' && s[i+1]<='z'))
{
zan++;
if (p3==1)
{
fprintf(f2,"%s",ins[zan]);
}
else
{
for (j=strlen(ins[zan])-1;j>=0;j--)
fprintf(f2,"%c",ins[zan][j]);
}
continue;
}
fprintf(f2,"%c",s[i]);
}
}
int main(void)
{
f1=fopen("expand.in","r");
f2=fopen("expand.out","w");
ini();
run();
print();
fclose(f1);fclose(f2);
return 0;
}