8 9wa 求助连续--的情况考虑到了 求救
查看原帖
8 9wa 求助连续--的情况考虑到了 求救
1416606
Asorijin楼主2024/8/28 20:16
#include<iostream>
#include<cmath>
#include<cstdlib>
#include<string>
#include<algorithm>
#include<cctype>
using namespace std;
int main() {
	int p1, p2, p3;
	char words[101] = { 0 };
	char word=0;
	cin >> p1 >> p2 >> p3;	
	cin.getline(words, 101);
	for (int i=0;1;i++) {
		word = getchar();
		if (word == 10) {
			break;
		}
		words[i] = word;
	}
	cout << words[0];
	for (int i = 1;1;i++) {
		if (words[i] == 0)
			break;
		if (words[i] == '-') {
			int check = 0;
			if (words[i - 1] >= 'a' && words[i - 1] <= 'z' && words[i + 1] >= '0' && words[i + 1] <= '9') {
				check = 1;
			}
			if (words[i - 1] >= '0' && words[i - 1] <= '9' && words[i + 1] >= 'a' && words[i + 1] <= 'z') {
				check = 1;
			}
			if (words[i - 1] >= words[i + 1]||words[i]=='-'&&words[i-1]=='-'||check==1) {
				cout << "-";
			}
			else {
				if (p3 == 1) {
					if ((words[i - 1] >= 'a' && words[i - 1] <= 'z')) {
						if (p1 == 1) {
							for (int k = 1; k < words[i + 1] - words[i - 1]; k++) {
								for (int j = 0; j < p2; j++) {
									cout << char(tolower(words[i - 1] + k));
								}
							}
						}
						else if (p1 == 2) {
							for (int k = 1; k < words[i + 1] - words[i - 1]; k++) {
								for (int j = 0; j < p2; j++) {
									cout << char(toupper(words[i - 1] + k));
								}
							}
						}
						else if (p1 == 3) {
							for (int k = 0; k < words[i + 1] - words[i - 1]; k++) {
								for (int j = 0; j < p2; j++) {
									cout << "*";
								}
							}
						}
					}
					else if (words[i - 1] >= '0' && words[i - 1] <= '9') {
						if (p1 == 3) {
							for (int j = 0; j < p2; j++) {
								cout << "*";
							}
						}
						else {
							for (int k = 1; k < words[i + 1] - words[i - 1]; k++) {
								for (int j = 0; j < p2; j++) {
									cout << char(words[i - 1] + k);
								}
							}
						}
					}
				}
				else {
					if ((words[i - 1] >= 'a' && words[i - 1] <= 'z')) {
						if (p1 == 1) {
							for (int k = words[i + 1] - words[i - 1]-1; k >=1; k--) {
								for (int j = 0; j < p2; j++) {
									cout << char(tolower(words[i - 1] + k));
								}
							}
						}
						else if (p1 == 2) {
							for (int k = words[i + 1] - words[i - 1]-1; k >= 1; k--) {
								for (int j = 0; j < p2; j++) {
									cout << char(toupper(words[i - 1] + k));
								}
							}
						}
						else if (p1 == 3) {
							for (int k = words[i + 1] - words[i - 1]-1; k >= 1; k--) {
								for (int j = 0; j < p2; j++) {
									cout << "*";
								}
							}
						}
					}
					else if (words[i - 1] >= '0' && words[i - 1] <= '9') {
						if (p1 == 3) {
							for (int j = 0; j < p2; j++) {
								cout << "*";
							}
						}
						else {
							for (int k = words[i + 1] - words[i - 1]-1; k >= 1; k--) {
								for (int j = 0; j < p2; j++) {
									cout << char(words[i - 1] + k);
								}
							}
						}
					}
				}
			}
		}
		else {
			cout << words[i];
		}
	}
	return 0;
}

连续--的情况考虑到了,-两侧不同时是字母\数字也考虑到了 但是89还是不过 为啥 救救

2024/8/28 20:16
加载中...