zoukankan      html  css  js  c++  java
  • 字符串展开

    在这里插入图片描述
    .
    .
    .
    .
    .
    .
    分析
    字符类型的模拟题,注意细节就好
    开头或结尾可能会有‘-’号,也可能会有‘-----’这种东西。
    ‘-’前后的字符要同为字母或数字才能展开
    对于如何求下一个展开的字符,运用了c++的一些特性
    啊,c++ 真玄 真棒
    输出时,printf的格式出错了,导致100直接10
    啊,printf真好用
    .
    .
    .
    .
    .
    .
    程序:

    #include<iostream>
    #include<stdio.h>
    #include<string.h>
    using namespace std;
    int p1,p2,p3;
    string t;
    char w[1000];
    int main()
    {
    	cin>>p1>>p2>>p3>>t;
    	int l=t.length();
    	for (int i=l;i>=1;i--)
    		w[i]=t[i-1];
    	w[0]='-';
    	for (int x=1;x<=l;x++)
    	{
    		if (w[x]==' ') break;
    		if (w[x]!='-') 
    		{
    			printf("%c",w[x]);
    			continue;
    		}
    		char zf1=w[x-1],zf2=w[x+1];
    		if (('0'<=zf1&&zf1<='9'&&'a'<=zf2&&zf2<='z')||('0'<=zf1&&zf1<='9'&&'A'<=zf2&&zf2<='Z')||('0'<=zf2&&zf2<='9'&&'a'<=zf1&&zf1<='z')||('0'<=zf2&&zf2<='9'&&'A'<=zf1&&zf1<='Z'))
    		{
    			cout<<'-';
    			continue;
    		}
    		if (zf1=='-'||zf2=='-') 
    		{
    			cout<<'-';
    			continue;
    		}
    		if (zf1+1==zf2) continue;
    		if (zf1>=zf2)
    		{
    			cout<<'-';
    			continue;
    		}
    		string zfc="";
    		char bj='0';
    		int bz=0;
    		if ('0'<=zf1&&zf1<='9') bz=1; else
    		if ('a'<=zf1&&zf1<='z') bj='a'; else
    		if ('A'<=zf1&&zf1<='Z') bj='A';
    		for (int i=1;i<=zf2-zf1-1;i++)
    			if (p1==1&&bz!=1) zfc=zfc+(char)('a'+(zf1-bj)+i); else 
    			if (p1==2&&bz!=1) zfc=zfc+(char)('A'+(zf1-bj)+i); else
    			if (p1!=3&&bz==1) zfc=zfc+(char)('0'+(zf1-bj)+i); else
    			if (p1==3) zfc=zfc+'*';
    		char s[2000];
    		if (p3==1)
    		{
    			for (int i=zfc.length();i>=1;i--)
    				s[i]=zfc[i-1];				
    		} else
    		{
    			int l=zfc.length();
    			for (int i=l-1;i>=0;i--)
    				s[l-i]=zfc[i];
    		}
    		int len=zfc.length();
    		for (int i=1;i<=len;i++)
    			for (int j=1;j<=p2;j++)		
    				cout<<s[i];
    	}
    	return 0;
    }
    
  • 相关阅读:
    装饰模式(Decorator Pattern)
    适配器模式(Adapter Pattern)
    组合模式
    单例的两种模式
    抽象工厂模式(Abstract Factory Pattern)
    工厂方法模式
    桥接模式
    原型模式(Prototype Pattern)
    建造者模式(Builder Pattern)
    解决使用tomcat服务器发布web项目时出现URL中文乱码的问题
  • 原文地址:https://www.cnblogs.com/YYC-0304/p/10292829.html
Copyright © 2011-2022 走看看