哪里错了
#include<bits/stdc++.h>
using namespace std;
char ch[1000001],s[1000001];
int n,m,k;
int main(){
cin >> n >> m >> k;
scanf ("%s",&s);
int l = strlen (s);
for (int i = 0;i < l;i ++) {
if (s[i] == '-') {
char ch1 = s[i - 1],ch2 = s[i + 1];
if (ch1 >= ch2) {
cout << '-';
continue;
}
if (!(ch1 >= '0' && ch2 >= '0' && ch1 <= '9' && ch2 <= '9') && !(ch1 >= 'a' && ch2 >= 'a' && ch1 <= 'z' && ch2 <= 'z')){
cout <<'-';
continue;
}
memset(ch,-1000,sizeof(ch));
int p = ch1 - ch2 - 1;
if (n == 3) {
for (int i = 1;i <= p * m;i ++) cout << "*";
continue;
}
int pp = 0;
if (n == 2 && !(ch1 >= 0 && ch1 <= 9 && ch2 >= 0 && ch2 <= 9)) ch1 = ch1 - 32,ch2 = ch2 - 32;
for (char j = ch1 + 1;j < ch2;j ++) {
for (int st = 1;st <= m;st ++) {
ch[++ pp] = j;
}
}
if (k == 2) for (int j = pp;j >= 1;j --){
cout << ch[j];
}
else for (int j = 1;j <= pp;j ++) {
cout << ch[j];
}
}
else {
cout << s[i];
}
}
}