字符串展开

复制代码
#include <bits/stdc++.h>
using namespace std;
int p1,p2,p3;
string s,S;
char a(char t){
    if(p1==3){
        return '*';
    }else if(p1==1){
        return tolower(t);
    }else{
        return toupper(t);
    }
}
int main() {
    cin>>p1>>p2>>p3>>s;
    s = " "+s+" ";
    for(int i = 1;i<s.size()-1;i++){
        if(s[i]!='-'){
            S+=s[i];
        }else{
            char zuo = s[i-1],you = s[i+1];
            if(zuo<you && (islower(zuo) && islower(you) || isdigit(zuo) && isdigit(you))){
                if(p3==1){
                    for(char i = zuo+1;i<=you-1;i++){
                        for(int j = 1;j<=p2;j++){
                            S+=a(i);
                        }
                    }
                }else{
                    for(char i = you-1;i>=zuo+1;i--){
                        for(int j = 1;j<=p2;j++){
                            S+=a(i);
                        }
                    }
                }
            }else{
                S+='-';
            }
        }
    }
    cout<<S;
    return 0;
}
复制代码

 

posted @   王一行(小号)  阅读(19)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示