Advertisement
eugene_bespoyasko

lab_07

Oct 8th, 2016
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.58 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <locale.h>
  4. #include <string.h>
  5. #include <Windows.h>
  6.  
  7. #define N 5000
  8.  
  9. int main()
  10. {
  11.     setlocale(LC_ALL, "Russian");
  12.     SetConsoleCP(1251);
  13.     SetConsoleOutputCP(1251);
  14.  
  15.     char szString[N], szStringLowUp[N];
  16.     int iFinalSymbol = 0;
  17.  
  18.     printf("Enter the sentence:\n");
  19.     gets_s(szString, N); // виводимо стрічку
  20.  
  21.     for (int i = 0; i < N; ++i) // дублюємо стрічку та знаходимо останній символ
  22.     {
  23.         szStringLowUp[i] = szString[i];
  24.         if (szString[i] == '.')
  25.         {  
  26.             szString[i+1] = '\0';
  27.             szStringLowUp[i+1] = '\0';
  28.             iFinalSymbol = i + 1;
  29.             break;
  30.         }
  31.         else if (szString[i] == '\0')
  32.         {
  33.             iFinalSymbol = i;
  34.             break;
  35.         }
  36.     }
  37.    
  38.     for (int i = 0; i < iFinalSymbol; ++i) // всі літери - великі
  39.     {
  40.         if ((szString[i] > 95 && szString[i] < 123) || (szString[i] > -33 && szString[i] < 0))
  41.         {
  42.             szString[i] -= 32;
  43.         }
  44.         if (szString[i] == -77)
  45.             szString[i] = -78;
  46.         if ((szString[i] == -70) || (szString[i] == -65))
  47.             szString[i] -= 16;
  48.     }
  49.     printf ("\na)%s", szString);
  50.  
  51.     for (int i = 1; i < iFinalSymbol; ++i) // кожне слово починається великою літерою
  52.     {
  53.         if (((szString[i] > 64 && szString[i] < 91) || (szString[i] > -65 && szString[i] < -32)) && (*(szString + i - 1) != ' ') && (*(szString + i) != '.'))
  54.             szString[i] += 32;
  55.         if ((szString[i] == -78) && (*(szString + i - 1) != ' ') && (*(szString + i) != '.'))
  56.             szString[i] = -77;
  57.         if (((szString[i] == -86) || (szString[i] == -81)) && (*(szString + i - 1) != ' ') && (*(szString + i) != '.'))
  58.             szString[i] += 16;
  59.     }
  60.     printf("\nb)%s", szString);
  61.  
  62.     for (int i = 0; i < iFinalSymbol - 1; ++i) // великі літери - маленькі, а маленькі - великі
  63.     {
  64.     if ((szStringLowUp[i] > 64 && szStringLowUp[i] < 91) || (szStringLowUp[i] > -65 && szStringLowUp[i] < -32))
  65.         szStringLowUp[i] += 32;
  66.     else if ((szStringLowUp[i] > 96 && szStringLowUp[i] < 123) || (szStringLowUp[i] > -33 && szStringLowUp[i] < 0))
  67.             szStringLowUp[i] -= 32;
  68.     if (szStringLowUp[i] == -78)
  69.         szStringLowUp[i] = -77;
  70.     else if (szStringLowUp[i] == -77)
  71.         szStringLowUp[i] = -78;
  72.     if ((szStringLowUp[i] == -86) || (szStringLowUp[i] == -81))
  73.             szStringLowUp[i] += 16;
  74.     else if ((szStringLowUp[i] == -70) || (szStringLowUp[i] == -65))
  75.             szStringLowUp[i] -= 16;
  76.    
  77.     }
  78.     printf ("\nc)%s\n\n", szStringLowUp);
  79.     system("pause");
  80.     return 0;
  81. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement