Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <locale.h>
- char* enterSeperators()
- {
- printf("vvedite simvoly-razdeliteli\n");
- char *sepr=(char*)malloc(81*sizeof(char));
- gets(sepr);
- sepr[strlen(sepr)]='\0';
- return sepr;
- }
- int enterAmount()
- {
- int z;
- printf("kol-vo raznyh simvolov-razdeliteley:\n");
- scanf("%d", &z);
- return z;
- }
- char** enterLines(int z, char *sepr)
- {
- printf("sepr: %s %i\n",sepr, z);
- int c=0,i,l,f=0,j,n;
- char line[81], **x;
- x = (char**) malloc(sizeof(char*));
- printf("\nVvedite stroki: \n");
- do
- {
- l=0;
- n=0;
- //printf("!!!!!!\n");
- gets(line);
- //printf("???????\n");
- char *r=(char*)malloc(strlen(line)*sizeof(char));
- x[c] = (char*) malloc(strlen(line)*sizeof(char));
- strcpy(x[c], line);
- for(i=0; i<strlen(line); i++)
- {
- for(j=0;j<strlen(r);j++)
- {
- if(x[c][i]==r[j]) {f=0; break;} else f=1;
- }
- for(j=0;j<strlen(sepr);j++)
- {
- if(x[c][i]==sepr[j] && f)
- {
- r[n]=sepr[j];
- l++;
- n++;
- }
- }
- r[strlen(r)]='\0';
- }
- printf("r: %s l: %i c:%i\n", r,l,c);
- c++; //gq=c;
- for(i=0; i<strlen(r); i++) r[i] = '0';
- }
- while(l<z);
- x[0][0]=c;
- return x;
- }
- /////////////////////////////////////////////////////
- char** deleteWord(char **x, char *sepr)
- {
- int c=1, q=0, i=0, e=0, m;
- int start=0,final, wordLen;
- char **y;
- printf("Задайте длинну слова:\n");
- scanf("%d", &wordLen);
- y = (char**) malloc(sizeof(char*));
- y[0]=(char*)malloc(1*sizeof(char));
- do{
- start=0;
- y[c] = (char*) malloc(strlen(x[c])*sizeof(char));
- e=0;
- i=start;
- final=0;
- do {
- for(m=0;m<strlen(sepr);m++)
- if(x[c][i]==sepr[m] || i==strlen(x[c]))
- {
- final=i;
- if((final-start-1)<wordLen && !(final-start==wordLen && start==0)&& !(final==strlen(x[c])&&(final-start-1==0)))
- {
- // НЕ записываем в массив y
- start=final;
- }
- else
- {
- //запишем в массив y
- for(q=start;q<(final);q++,e++)
- y[c][e]=x[c][q];
- start=final;
- }
- }
- i++;
- }while(i<=strlen(x[c]));
- y[c][e]='\0';
- c++;
- } while(c<x[0][0]);
- y[0][0]=x[0][0];
- return y;
- }
- void output(char **y)
- {
- int c;
- printf("\n\nВывод конечного массива\n\n");
- for(c=1;c<y[0][0];c++)
- {
- printf("%s", y[c]); printf("\n");
- }
- }
- int main()
- {
- setlocale(LC_ALL, "Russian");
- char *sepr, **x, **y;
- int z;
- sepr=enterSeperators();
- z=enterAmount();
- x=enterLines(z, sepr);
- y=deleteWord(x, sepr);
- output(y);
- free(x); free(y);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement