Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #define kmax 10
- #define lmax 20
- #include <locale.h>
- #include <stdbool.h>
- void z1(char arr[kmax+1][lmax+1], char subs[kmax*kmax+kmax][lmax+1], int *Col, int k)
- {
- unsigned char c, s;
- int i, j, col=0, l, p, w, u;
- printf("Задание №1. \n");
- for(i=0;i<k;i++)
- {
- c=arr[i][0];
- for(j=0;c!='\n';j++)
- {
- c=arr[i][j];
- s=arr[i][j+1];
- if((c>='A'&&c<='Z')||(c>='a'&&c<='z'))
- for(l=j+2;s!='\n';l++)
- {
- s=arr[i][l];
- if((s>='a'&&s<='z')||(s>='A'&&s<='Z'))
- {
- for(p=0;p<l-j-1;p++) subs[col][p]=arr[i][j+1+p];
- subs[col][p]='\0';
- col++;
- }
- }
- }
- }
- if(col==0) printf("Такие подстроки не найдены.\n");
- for(i=0;i<col;i++)
- {
- puts(subs[i]);
- }
- *Col=col;
- }
- void z2(char subs[kmax*kmax+kmax][lmax+1], int col, int *Mini)
- {
- bool a;
- int mins, flag, i, j;
- unsigned char minc;
- printf("Задание №2.\n");
- if(col==0) printf("Т.к. в задании №1 не были найдены подстроки, подходящие под условия, такой подстроки не существует.\n");
- else
- {
- flag=0;
- minc='я';
- mins=0;
- for(i=0;i<col;i++)
- {
- for(j=0;subs[i][j]!='\0';j++)
- {
- a=(int)subs[i][j]<(int)minc || ((int)subs[i][j]==(int)minc && flag==0);
- if(subs[i][j]<minc || (subs[i][j]==minc && flag==0))
- {
- flag=1;
- minc=subs[i][j];
- mins=i;
- }
- }
- }
- puts(subs[mins]);
- }
- *Mini=mins;
- }
- void z3(char subs[kmax*kmax+kmax][lmax+1], int col, int mins)
- {
- int L, i;
- unsigned char c;
- printf("Задание №3.\n");
- if(col==0) printf("Т.к. в задании №1 не были найдены подстроки, подходящие под условия, такой подстроки не существует.\n");
- else
- {
- L=0;
- for(i=0;subs[mins][i]!='\0';i++)
- {
- c=subs[mins][i];
- if(!(c>='0' && c<='9' && ((int)c)%2==0)) subs[mins][L++]=c;
- }
- subs[mins][L]='\0';
- if(L==0) printf("Строка полностью удалена. \n");
- else
- {
- if(L==i) printf("Строка осталась без изменений. \n");
- else puts(subs[mins]);
- }
- }
- }
- int main()
- {
- system("chcp 1251");
- system("cls");
- setlocale(LC_ALL, "Russian");
- int i, j, k, l, p, col, flag, ms=0;
- char arr[kmax+1][lmax+1], subs[kmax*kmax+kmax][lmax+1], c, s, minc, mins, L;
- printf("Лабораторная работа №4.\n");
- do
- {
- printf("Введите k, не превышающее %d:", lmax);
- scanf("%d", &k);
- if(k<=0 || k>kmax) printf("k введено некорректно, повторите ввод.\n");
- while(getchar()!='\n');
- }while(k<=0 || k>kmax);
- printf("Введите строки (длина не должна превышать %d).\n", lmax);
- for(i=0;i<k;i++)
- {
- printf("%d: ", i + 1);
- fgets(arr[i], lmax, stdin);
- }
- z1(arr, subs, &col, k);
- z2(subs, col, &ms);
- z3(subs, col, ms);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement