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>
- void z1(char arr[kmax+1][lmax+1], char subs[kmax*kmax+kmax][lmax+1], int *Col, int k)
- {
- char c, s;
- int i, j, col=0, l, p;
- 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>='а'&&c<='я')||(c>='А'&&c<='Я'))
- for(l=j+2;s!='\n';l++)
- {
- s=arr[i][l];
- if((s>='А'&&s<='Я')||(s>='а'&&s<='я'))
- {
- 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)
- {
- int mini, flag, minl, i,j, l;
- printf("Задание №2. \n");
- if(col==0) printf("Т.к. в задании №1 не были найдены подстроки, подходящие под условия, такой подстроки не существует.\n");
- else
- {
- minl=lmax;
- for(i=0;i<col;i++)
- {
- l=0;
- for(j=0;subs[i][j]!='\0';j++) l++;
- if(l<minl || (l==minl && flag==0))
- {
- flag=1;
- minl=l;
- mini=i;
- }
- }
- puts(subs[mini]);
- }
- *Mini=mini;
- }
- void z3(char subs[kmax*kmax+kmax][lmax+1], int imin)
- {
- printf("Задание №3.\n");
- int i, flag, l;
- flag=0;
- l=0;
- for(i=0;subs[imin][i]!='\0';i++)
- {
- if(subs[imin][i]!=' ') flag=1;
- if(!(subs[imin][i]==' ' && flag==0)) subs[imin][l++]=subs[imin][i];
- }
- subs[imin][l]='\0';
- if(imin==-1) printf("Т.к. в задании №1 не были найдены подстроки, подходящие под условия, такой подстроки не существует.\n");
- else
- {
- if(l==0) printf("Строка полностью удалена. \n");
- else
- {
- if(l==i) printf("Строка осталась без изменений. \n");
- else puts(subs[imin]);
- }
- }
- }
- int main()
- {
- system("chcp 1251");
- system("cls");
- setlocale(LC_ALL, "Russian");
- int col, mini=-1, k, i, j;
- char arr[kmax+1][lmax+1], subs[kmax*kmax+kmax][lmax+1];
- 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, &mini);
- z3(subs, mini);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement