字符串的展开

    xiaoxiao2021-03-25  93

    #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; }
    转载请注明原文地址: https://ju.6miu.com/read-26234.html

    最新回复(0)