#include
#include
#include
#include
#include
#include
#include
using namespace std;
int main()
{
int p1,p2,p3;
string a;
cin>>p1>>p2>>p3>>a;
int add;
int len=a.size();
int n;
for(int i=0;i {
if((a[i]=='-')&&(((a[i-1]>='0')&&(a[i-1]<='9')&&(a[i+1]>='0')&&(a[i+1]<='9'))||((a[i-1]>='a')&&(a[i-1]<='z')&&(a[i+1]>='a')&&(a[i+1]<='z'))))
{
if(a[i-1]+1 {
n=(int)(a[i+1]-a[i-1]);
n=(n-1)*p2;
for(int j=len-1;j>i;j--)
{
a[j+n-1]=a[j];
}
len=len+n-1;
if(p1==3)
{
for(int j=i;j<=n+i-1;j++)
a[j]='*';
}
else
{
if(p3==1)
{
add=1;
for(int j=i;j<=n+i-1;)
{
if((a[i-1]>='0')&&(a[i-1]<='9')&&(a[i+n]>='0')&&(a[i+n]<='9'))
{
for(int z=1;z<=p2;z++)
{
a[j+z-1]=a[i-1]+add;
}
}
if((a[i-1]>='a')&&(a[i-1]<='z')&&(a[i+n]>='a')&&(a[i+n]<='z'))
{
if(p1==1)
{
for(int z=1;z<=p2;z++)
{
a[j+z-1]=a[i-1]+add;
}
}
if(p1==2)
{
for(int z=1;z<=p2;z++)
{
a[j+z-1]=a[i-1]+add-'a'+'A';
}
}
}
j=j+p2;
add++;
}
}
if(p3==2)
{
add=n/p2;
for(int j=i;j<=n+i-1;)
{
if((a[i-1]>='0')&&(a[i-1]<='9')&&(a[i+n]>='0')&&(a[i+n]<='9'))
{
for(int z=1;z<=p2;z++)
{
a[j+z-1]=a[i-1]+add;
}
}
if((a[i-1]>='a')&&(a[i-1]<='z')&&(a[i+n]>='a')&&(a[i+n]<='z'))
{
if(p1==1)
{
for(int z=1;z<=p2;z++)
{
a[j+z-1]=a[i-1]+add;
}
}
if(p1==2)
{
for(int z=1;z<=p2;z++)
{
a[j+z-1]=a[i-1]+add-'a'+'A';
}
}
}
j=j+p2;
add--;
}
}
}
}
}
if(a[i]=='-')
{
int y=a[i+1]-a[i-1];
if(y==1)
{
for(int j=i;j<len;j++)
a[j]=a[j+1];
len--;
}
}
}
for(int i=0;i<len;i++)
cout<<a[i];
return 0;
}
程序通过编译没有问题。如果结果和你的预期不同,那么请先说明你想做什么。
感谢您能在百忙之间看一下这个程序
在数据较大时会炸 why 谢谢