SHARE
TWEET

Untitled

a guest Oct 23rd, 2019 87 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <ctype.h>
  4.  
  5. int main(){
  6.     int maxsize = 1;
  7.     int N = 0;
  8.     char* text = malloc(maxsize*sizeof(char));
  9.     scanf("%c",&text[N]);
  10.     while(text[N]!='!'){
  11.         N++;
  12.         if(N==maxsize){
  13.             maxsize=maxsize*2;
  14.             text=realloc(text,maxsize*sizeof(char));
  15.         }
  16.         scanf("%c",&text[N]);
  17.     }
  18.     int Nsens=0;
  19.     for(int i=0;i<N+1;i++){
  20.         //printf("%c",text[i]);
  21.         if((text[i]=='!')||(text[i]==';')||(text[i]=='?')||(text[i]=='.')){
  22.             Nsens++;
  23.         }
  24.     }
  25.     char* sentences[Nsens];
  26.     int sentsymbols[Nsens];
  27.     int Ntmp=0;
  28.     int j=0;
  29.     for(int i=0;i<Nsens;i++){
  30.         sentsymbols[i]=0;
  31.         sentences[i]=malloc(sentsymbols[i]*sizeof(char));
  32.         while(text[j]!='!'){
  33.             if((text[j]=='!')||(text[j]==';')||(text[j]=='?')||(text[j]=='.')){
  34.                 j++;
  35.                 sentsymbols[i]++;
  36.                 sentences[i]=realloc(sentences[i],sentsymbols[i]*sizeof(char));
  37.                 sentences[i][sentsymbols[i]]=text[j];
  38.                 break;
  39.             }
  40.             sentsymbols[i]++;
  41.             sentences[i]=realloc(sentences[i],sentsymbols[i]*sizeof(char));
  42.             sentences[i][sentsymbols[i]]=text[j];
  43.             j++;
  44.         }
  45.         sentences[i][sentsymbols[i]]=text[j-1];
  46.         if (i+1==Nsens){
  47.             sentsymbols[i]++;
  48.             sentences[i]=realloc(sentences[i],sentsymbols[i]*sizeof(char));
  49.             sentences[i][sentsymbols[i]]='!';
  50.         }
  51.     }
  52.     /*for(int i=0;i<Nsens;i++){
  53.         printf("%d",sentsymbols[i]);
  54.     }*/
  55.     int resNsens=Nsens;
  56.     for(int i=0;i<Nsens;i++){
  57.         int ret=0;
  58.         if (sentences[i][1]=='\t'){
  59.             ret=1;
  60.         }
  61.         for(int j=0;j<sentsymbols[i]+1;j++){
  62.             if(isdigit(sentences[i][j])&&(isalnum(sentences[i][j-1]))&&(isalnum(sentences[i][j+1]))){
  63.                 ret=1;     
  64.             }
  65.         }
  66.         if(ret){
  67.             resNsens--;
  68.             continue;
  69.         }
  70.         for(int j=1;j<sentsymbols[i]+1;j++){//т.к нулевой элемент -пробельный/табуляционный
  71.             printf("%c",sentences[i][j]);
  72.         }
  73.         printf("\n");
  74.     }
  75.     printf("%d %d",Nsens,resNsens);
  76.     free(text);
  77.     for(int i=0;i<Nsens;i++){
  78.         free(sentences[i]);
  79.     }
  80.     return 0;
  81. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top