生活随笔
收集整理的這篇文章主要介紹了
字符串展开
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
.
.
.
.
.
.
分析
字符類型的模擬題,注意細節就好
開頭或結尾可能會有‘-’號,也可能會有‘-----’這種東西。
‘-’前后的字符要同為字母或數字才能展開
對于如何求下一個展開的字符,運用了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; elseif ('a'<=zf1&&zf1<='z') bj='a'; elseif ('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); elseif (p1!=3&&bz==1) zfc=zfc+(char)('0'+(zf1-bj)+i); elseif (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;
}
轉載于:https://www.cnblogs.com/YYC-0304/p/10292829.html
總結
以上是生活随笔為你收集整理的字符串展开的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。