有人帮我再看看吗?
#include<bits/stdc++.h>
using namespace std;
int p1,p2,p3;
string s;
int isAllC(char c){
if('0'<=c&&c<='9'){
return 1;
}else if('a'<=c&&c<='z'){
return 2;
}else{
return 3;
}
}
int main(){
cin>>p1>>p2>>p3>>s;
int ls=s.size();
for(int i=0;i<ls-1;i++){
if(s[i+1]=='-'){
if(s[i]+1==s[i+2]){
cout<<s[i];
i+=2;
}else if(s[i+2]<=s[i]&&isAllC(s[i])==isAllC(s[i+2])){
cout<<s[i]<<'-';
i+=2;
}else if(isAllC(s[i])!=isAllC(s[i+2])){
cout<<s[i]<<'-';
}else{
cout<<s[i];
if(p3==1){
if('0'<=s[i]&&s[i]<='9'){
for(int j=s[i]+1;j<s[i+2];j++){
for(int k=0;k<p2;k++){
cout<<char(j);
}
}
}else{
if(p1==1){
for(int j=s[i]+1;j<s[i+2];j++){
for(int k=0;k<p2;k++){
char isc=char(j);
cout<<('a'<=isc&&isc<='z'?isc:char(isc+32));
}
}
}else if(p1==2){
for(int j=s[i]+1;j<s[i+2];j++){
for(int k=0;k<p2;k++){
char isc=char(j);
cout<<('A'<=isc&&isc<='Z'?isc:char(isc-32));
}
}
}else{
for(int j=s[i]+1;j<s[i+2];j++){
for(int k=0;k<p2;k++){
cout<<'*';
}
}
}
}
}else{
if('0'<=s[i]&&s[i]<='9'){
for(int j=s[i+2]-1;j>=s[i]+1;j--){
for(int k=0;k<p2;k++){
cout<<char(j);
}
}
}else{
if(p1==1){
for(int j=s[i+2]-1;j>=s[i]+1;j--){
for(int k=0;k<p2;k++){
char isc=char(j);
cout<<('a'<=isc&&isc<='z'?isc:char(isc+32));
}
}
}else if(p1==2){
for(int j=s[i+2]-1;j>=s[i]+1;j--){
for(int k=0;k<p2;k++){
char isc=char(j);
cout<<('A'<=isc&&isc<='Z'?isc:char(isc-32));
}
}
}else{
for(int j=s[i+2]-1;j>=s[i]+1;j--){
for(int k=0;k<p2;k++){
cout<<'*';
}
}
}
}
}
}
i++;
}else{
cout<<s[i];
}
}
cout<<s[ls-1];
return 0;
}