这个代码有啥错
查看原帖
这个代码有啥错
1380404
zby2_楼主2024/7/4 12:43
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int p1,p2,p3;
string s;
bool p(char a,char b){
	if(isdigit(a) && isdigit(b)) return 1;
	if(isalpha(a) && isalpha(b)) return 1;
	return 0;
}
void f(char a,char b){
	if(p3==1){
		for(char i=a+1;i<b;++i){
			for(int j=0;j<p2;++j){
				if(p1==1) printf("%c",tolower(i));
				else if(p1==2) printf("%c",toupper(i));
				else cout<<"*";
			}	
		}
	}
	else{
		for(char i=b-1;i>a;--i){
			for(int j=0;j<p2;++j){
				if(p1==1) cout<<char(tolower(i));
				else if(p1==2) cout<<char(toupper(i));
				else cout<<"*";
			}
		}
	}
}
int main(){
	cin>>p1>>p2>>p3>>s;
	for(int i=0;i<s.size();++i){
		if(s[i]=='-'){
			if(s[i+1]-s[i-1]==1) continue;
			else if(s[i+1]<=s[i-1]){
				cout<<s[i];
				continue;
			}
			else if(p(s[i-1],s[i+1])){
				f(s[i-1],s[i+1]);
				continue;
			}
			cout<<s[i];
		}
	}
	return 0;
}
2024/7/4 12:43
加载中...