Advertisement
pseudocreator

go3 masterskript

Apr 2nd, 2014
323
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.74 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <ctype.h>
  3. #include <string.h>
  4. #include <iostream>
  5. using namespace std;
  6.  
  7. void substr(char str[][81], int n, char str1[][81], int *n1, int num[])
  8. {
  9.     int i;
  10.     char *s, *chars="!,.:;?", *s1, *s2;
  11.     *n1 = 0;
  12.  
  13.     for(i=0;i<n;i++)
  14.     {
  15.         s1 = NULL;
  16.         s = str[i];
  17.         while(*s)
  18.         {
  19.             if(strchr(chars, *s) != NULL)
  20.             {
  21.  
  22.                 s2 = s - 1;
  23.                 while(strchr(chars, *s) != NULL && s) s++;
  24.                 if(s2 >= s1 && s1)
  25.                 {
  26.                     num[*n1] = i;
  27.                     strncpy(str1[*n1], s1, s2 - s1 + 1);
  28.                     str1[*n1][s2 - s1 + 1] = '\0';
  29.                     (*n1)++;
  30.                 }
  31.                 s1 = s;
  32.             }
  33.             else s++;
  34.         }
  35.     }
  36. }
  37.  
  38. int stroka(char str1[][81], int n1)
  39. {
  40.     int i, k = -1, l = -1, p;
  41.     char *s;
  42.  
  43.     for(i=0;i<n1;i++)
  44.     {
  45.         p = 0;
  46.         for(s=str1[i];*s;s++)
  47.             {
  48.                 if((int)*s >= 97 && (int)*s <= 122) p++;
  49.             }
  50.         if(p != 0 && p > l) { l = p; k = i; }
  51.     }
  52.  
  53.     return k;
  54. }
  55.  
  56. int insert(char *s)
  57. {
  58.     int f = 0, p;
  59.     char *s1, *j;
  60.  
  61.     for(s1=s;*s1;s1++)
  62.     {
  63.         if((int)*s1 == 32)
  64.         {
  65.             p = 0;
  66.             while((int)*s1 == 32 && s1) {s1++; p++;}
  67.             if(p > 1)
  68.             {
  69.                 for(j=s1-p+1;*(j+p-1);j++)
  70.                     *(j)=*(j+p-1);
  71.                 s1 = s1 - p + 1;
  72.                 f = 1;
  73.                 s[strlen(s)-p+1] = '\0';
  74.             }
  75.         }
  76.     }
  77.     return f;
  78. }
  79.  
  80. int main()
  81. {
  82.     int n=0, n1, num[100], i, k;
  83.     char str[10][81], str1[10][81];
  84.  
  85.     printf("Max: 10 \nPlease, input strings:\n");
  86.     while(n<10 && *gets(str[n])) n++;
  87.  
  88.     if(n == 0) printf("No strings.");
  89.     else
  90.     {
  91.         substr(str, n, str1, &n1, num);
  92.  
  93.         printf("\nStrings (%d):\n", n);
  94.         for(i=0;i<n;i++) cout << "  " << str[i] << endl;
  95.  
  96.         if(n1 == 0) printf("\nNo new strings.");
  97.         else
  98.         {
  99.             printf("\nNew Strings (%d):\n", n1);
  100.             for(i=0;i<n1;i++) cout << "  " << str1[i] << endl;
  101.  
  102.             k = stroka(str1, n1);
  103.             if(k == -1) printf("No latin in strings");
  104.             else
  105.             {
  106.                 printf("\nFirst string with max latins - %d", k + 1, str1[k]);
  107.                 if(insert(str[num[k]]) == 1)
  108.                 {
  109.                     printf("\nDouble spaces found.");
  110.                     printf("\n\nStrings (%d):\n", n);
  111.                     for(i=0;i<n;i++) cout << "  " << str[i] << endl;
  112.                 }
  113.                 else printf("\nSpaces weren't deleted.");
  114.             }
  115.         }
  116.     }
  117.     return 0;
  118. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement