#include <bits/stdc++.h>
using namespace std;
string s;
int main()
{
int p1,p2,p3,slen;
bool flag=true;
cin>>p1>>p2>>p3;
cin>>s;
slen=s.size();
if(p1==3) flag=false;
for(int i=0;i<slen;i++){
if(s[i]!='-' && s[i+1]!='-' && s[i-1]!='-') cout<<s[i]; //判断是否是折叠的字符串
else if(s[i+1]=='-'){ //如果是折叠字符串的第一个数
if(s[i+2]<=s[i]){ //如果-右边的数ACSLL码<=a[i] 直接输出
cout<<s[i]<<s[i+1]<<s[i+2];
continue;
}
string t;//展开后的字符串
int tlen;
cout<<s[i];
for(int i=s[i]+1;i<s[i+2];i++){ //填充
for(int j=1;j<=p2;j++){ //填充次数
if(!flag){ //如果p1==3 填充*
t+='*';
continue;
}
t+=char(i);
}
}
tlen=t.size();
if(p1==2 && !isdigit(s[i])){ //如果p1=2 && s[i]不是数字 换成大写字母
for(int i=0;i<tlen;i++){
t[i]-='a'-'A';
}
}
if(p3==2){
for(int i=tlen-1;i>=0;i--) cout<<t[i];
cout<<s[i+2];
continue;
}
cout<<t;
cout<<s[i+2];
}
}
return 0;
}
每一小块代码单独拿出来跑都是没问题的 放在一起就只能去'-'了 dalao救命