测试点5和7会出现奇怪的字符(正方形的)
#include<iostream>
#include<cstring>
using namespace std;
int p1, p2, p3, len;
char a[101];
int main() {
cin>>p1>>p2>>p3;
//a==97,z==122,1==49,9==57;
cin >> a;
len = strlen(a);
for (int i = 0; i < len; i++) {
if (a[i] == '-') {
if (a[i-1]!=45&&a[i+1]!=45&&(a[i - 1] < a[i + 1] && ((a[i - 1] < 58 && a[i + 1] < 58) || (a[i - 1] > 96 && a[i + 1] > 96)))) {
int b=a[i+1]-a[i-1];
if (p3 == 1) {
for (int p = 1; p < b; p++) {
for (int t = 0; t < p2; t++) {
if (p1 == 1) {
cout << (char)(a[i - 1] + p);
}
else if (p1 == 2) {
cout << (char)(a[i- 1] + p-32);
}
else{
cout << '*';
}
}
}
}
else {
for (int p = 1; p < b; p++) {
for (int t = 0; t < p2; t++) {
if (p1 == 1) {
cout << (char)(a[i + 1] - p);
}
else if (p1 == 2) {
cout << (char)(a[i + 1] - p - 32);
}
else {
cout << '*';
}
}
}
}
}
else {
cout << a[i];
}
}
else {
cout << a[i];
}
}
}