代码如下
#include<bits/stdc++.h>
using namespace std;
int p1,p2,p3;
string a;
int main(){
cin>>p1>>p2>>p3>>a;
int len=a.length();
cout<<a[0];
for(int i=1;i<len;i++){
if(a[i]=='-'&&a[i-1]<a[i+1]){
string b="";
if(a[i-1]>='0'&&a[i-1]<='9'&&a[i+1]>='0'&&a[i+1]<='9'){
for(char i=a[i-1]+1;i<a[i+1];i++){
char c=i;
if(p1==3)c='*';
for(int k=0;k<p2;k++){
b+=c;
}
}
if(p3==2){
reverse(b.begin(),b.end());
}
cout<<b;
}else if(a[i-1]>='A'&&a[i-1]<='Z'&&a[i+1]>='A'&&a[i+1]<='Z'){
for(char i=a[i-1]+1;i<a[i+1];i++){
char c=i;
if(p1==3)c='*';
else if(p1==1)c+=32;
for(int k=0;k<p2;k++){
b+=c;
}
}
if(p3==2){
reverse(b.begin(),b.end());
}
cout<<b;
}else if(a[i-1]>='a'&&a[i-1]<='z'&&a[i+1]>='a'&&a[i+1]<='z'){
for(char i=a[i-1]+1;i<a[i+1];i++){
char c=i;
if(p1==3)c='*';
else if(p1==2)c-=32;
for(int k=0;k<p2;k++){
b+=c;
}
}
if(p3==2){
reverse(b.begin(),b.end());
}
cout<<b;
}else{
cout<<'-';
}
}else{
cout<<a[i];
}
}
return 0;
}