字符串的展开

#include<iostream>
#include<string>
using namespace std;
int p1,p2,p3;
string str,ans;
bool canuse(int t){
if(str[t-1]>=str[t+1])return 0;
if(islower(str[t-1])&&islower(str[t+1]))return 1;
if(isdigit(str[t-1])&&isdigit(str[t+1]))return 1;
return 0;
}
int main(){
cin>>p1>>p2>>p3;
cin>>str;
for(int i=0;i<str.size();i++){
if(str[i]=='-' && canuse(i)){
string tmp;
if(p1==3)for(int j=str[i-1]+1;j<str[i+1];j++)for(int k=1;k<=p2;k++)tmp+='*';
else{
if(p3==1)for(int j=str[i-1]+1;j<str[i+1];j++)for(int k=0;k<p2;k++)tmp+=char(j);
if(p3==2)for(int j=str[i+1]-1;j>str[i-1];j--)for(int k=0;k<p2;k++)tmp+=char(j);
if(p1==2)for(int j=0;j<tmp.size();j++)tmp[j]=char(toupper(tmp[j]));
}
ans+=tmp;
}
else ans+=str[i];
}
cout<<ans<<endl;
return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值