Advertisement
Guest User

123

a guest
May 30th, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.54 KB | None | 0 0
  1. #include "stdafx.h"
  2. #include <iostream> //библиотеки
  3.  
  4. using namespace std;
  5.  
  6. const int StringCount = 10; //Кол-во строк
  7. const int StringLength = 250; //Длина 1 строки
  8.  
  9. int LowCount(char**, int); //протитипы всех функций
  10. int UpCount(char**, int);
  11. void FormattedOutput(char**, int);
  12.  
  13. int main()
  14.  
  15. {
  16.     setlocale(LC_ALL, "Russian"); //для рус. языка
  17.     char **text = new char *[StringCount];       //new - операция выделения памяти
  18.     for (int i = 0; i < StringCount; i++)        //высвобождение памяти под двумерный массив
  19.     {
  20.         text[i] = new char[StringLength];
  21.     }
  22.     char Stop[] = ".";      //критерий остановки
  23.     int Counter = 0;        //счетчик строк
  24.     cout << "Введите текст: ";
  25.     do
  26.     {
  27.         cin.getline(text[Counter], StringLength); //ввод текста: cin.getline(<Имя строки>, <Длина строки>);
  28.         if (Counter < StringCount) //Counter заполняется до кол-ва строк.
  29.         {
  30.             Counter++;
  31.         }
  32.     } while (strcmp(text[Counter - 1], Stop) && (Counter < StringCount));  //strcmp(<Имя первой строки>,<Имя второй строки>); Если строки одинаковы, то функция возвращает 0
  33.     int ExitPoint = Counter; //ExitPoint - точка выхода
  34.     cout << "Количество строчных букв: " << LowCount(text, ExitPoint) << " \n"
  35.         << "Количество заглавных букв: " << UpCount(text, ExitPoint) << "\n";
  36.     FormattedOutput(text, ExitPoint);
  37.     system("pause");
  38.     delete[] text; //delete - операция высвобождения памяти
  39.     return 0;
  40. }
  41.  
  42. int LowCount(char **text, int ExitPoint)
  43. {
  44.     int LowCount = 0;
  45.     for (int j = 0; j < ExitPoint; j++)
  46.     {
  47.         for (int i = 0; text[j][i] != '\0'; i++)
  48.         {
  49.             if (islower(text[j][i])) LowCount++;
  50.         }
  51.     }
  52.     return LowCount;
  53. }
  54.  
  55. int UpCount(char **text, int ExitPoint)
  56. {  
  57.     int UpCount = 0;
  58.     for (int j = 0; j < ExitPoint; j++)
  59.     {
  60.         for (int i = 0; text[j][i] != '\0'; i++)
  61.         {
  62.             if (isupper(text[j][i])) UpCount++;
  63.         }
  64.     }
  65.     return UpCount;
  66. }
  67.  
  68. void FormattedOutput(char **text, int ExitPoint)
  69. {
  70.     for (int i = 0; i < ExitPoint; i++)
  71.     {
  72.         if (text[i][strlen(text[i]) - 1] == '.') //strlen(<Имя строки>) - возвращает длину строки с \0
  73.         {
  74.             cout << "\n\t" << text[i] << " "; // \n - перевод на след. строку \t - табуляция
  75.         }
  76.         else cout << text[i] << " ";
  77.     }
  78.    
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement