Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2019
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.92 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement