#include<stdio.h>#include<string.h>#define SIZE 101 int p1,p2,p3;void fun (int a, int b) { int i,j; if(a >= 'a'){ if(p3 == 1){ //原序列 for(i = a+1; i < b; i++){ for(j = 0; j < p2; j++){ if(p1 == 1){ PRintf("%c",i); } else if(p1 == 2) { printf("%c",i-32); } else if(p1 == 3) { printf("*"); } } } } else { //倒叙 for(i = b-1; i >= a+1; i--){ for(j = 0; j < p2; j++){ if(p1 == 1){ printf("%c",i); } else if(p1 == 2) { printf("%c",i-32); } else if(p1 == 3) { printf("*"); } } } } } else {//-------------------------------- if(p3 == 1){ //原序列 for(i = a+1; i < b; i++){ for(j = 0; j < p2; j++){ if(p1 == 3) { printf("*"); } else { printf("%c",i); } } } } else { //倒叙 for(i = b-1; i >= a+1; i--){ for(j = 0; j < p2; j++){ if(p1 == 3) { printf("*"); } else { printf("%c",i); } } } } }}int main () { int len; char str[SIZE]; int i,j; scanf("%d%d%d", &p1, &p2, &p3); scanf("%s", str); len = strlen(str); for(i = 0; i < len; i ++){ if((i == len-1 || i == 0) && str[i] == '-'){ //处理第一个和最后一个字符 printf("-"); continue; } if((str[i-1] == '-' || str[i+1] == '-') && str[i] == '-'){ //处理连续的‘-’ printf("-"); continue; } //当某个字符是‘-’时且前后都满足同时字母或同时数字 if(str[i] == '-' && (((str[i-1] >= 97 && str[i-1] <= 122) && (str[i+1] >= 97 && str[i+1] <= 122)) || ((str[i-1] >= 48 && str[i-1] <= 57) && (str[i+1] >= 48 && str[i+1] <= 57))) ){ if(str[i+1] <= str[i-1]){ printf("-"); continue; } if(str[i+1] == str[i-1]+1){ continue; } fun((int)str[i-1],(int)str[i+1]); } else { //不是‘-’字符时输出 printf("%c",str[i]); } } return 0;}
新闻热点
疑难解答