Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include<iostream>
- #include<algorithm>
- #include<string>
- #include<iostream>
- using namespace std;
- struct School {
- string name;
- string sur;
- string klassAlpha;
- string data;
- int klassDigit;
- School() {
- name = "";
- sur = "";
- klassAlpha = "";
- klassDigit = 0;
- data = "";
- }
- School(string Name, string Sur, string KlassAlpha, string Data, int KlassDigit) {
- name = Name;
- sur = Sur;
- klassAlpha = KlassAlpha;
- data = Data;
- klassDigit = KlassDigit;
- }
- };
- School e[110];
- // string - это стандартная структура языка
- void klassAlphaDigit(string KlasssAlphaDigit, string &KlassAlpha, int &KlassDigit) {
- bool flag = false;
- int k = 0;
- for (char& i : KlasssAlphaDigit) {
- if (isalpha(KlasssAlphaDigit[i]) && !flag) {
- flag = true;
- KlassDigit = KlasssAlphaDigit[i] - '0';
- }
- else if (isalpha(KlasssAlphaDigit[i]) && flag) {
- KlassDigit = KlassDigit * 10 + KlasssAlphaDigit[i] - '0';
- }
- else if (isdigit(KlasssAlphaDigit[i])) {
- KlassAlpha[k] = KlasssAlphaDigit[i];
- k++;
- }
- }
- }
- bool compare(School x, School y) {
- if (x.klassDigit < y.klassDigit) {
- return x.klassDigit < y.klassDigit;
- }
- else if (x.klassDigit == y.klassDigit) {
- return x.klassAlpha < y.klassAlpha;
- }
- else if (x.klassDigit == y.klassDigit && x.klassAlpha == y.klassAlpha) {
- return x.sur < y.name;
- }
- }
- int main() {
- int n, KlassDigit;
- string KlasssAlphaDigit, KlassAlpha, Data, Name, Sur;
- scanf("%d", &n);
- for (int i = 0; i < n; i++) {
- scanf("%s%s%s%s", &Sur, &Name, &KlasssAlphaDigit, &Data);
- klassAlphaDigit(KlasssAlphaDigit, KlassAlpha, KlassDigit);
- e[i] = School(Name, Sur, KlassAlpha, Data, KlassDigit);
- }
- sort(e, e + n, compare);
- for (int i = 0; i < n; i++) {
- printf("%d%s %s %s %s\n", e[i].klassDigit, e[i].klassAlpha, e[i].sur, e[i].name, e[i].data);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement