Advertisement
myloyo

класс

Apr 11th, 2023 (edited)
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.72 KB | None | 0 0
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. class MyStroka {
  7.     string line;
  8. public:
  9.     MyStroka() { };
  10.     MyStroka(string line) { this ->line = line; }
  11.  
  12.     void kolvocif() { // количество цифр в строке
  13.         int count = 0;
  14.         for (int i = 0; i < line.length(); i++) {
  15.             if (isdigit(line[i]) == true) {
  16.                 count++;
  17.             }
  18.         }
  19.         cout << count;
  20.     }
  21.    
  22.     void podposl() { // выводим самую длинную подпоследовательность
  23.         int n = 0;
  24.         int c = 0;
  25.         int maxim = 0;
  26.         int a = 0; int b = 0; int y = 0;
  27.         while (n < line.length()) {
  28.             c = n;
  29.             while (line[n] == line[c++] && c <= line.length()) {
  30.                 if ((n - c + 1) > maxim) {
  31.                     maxim = n - c + 1;
  32.                 }
  33.             }
  34.             a = n; b = c;
  35.             n = c;
  36.         }
  37.         for (int i = a-1; i <= b - 1; i++) {
  38.             cout << line[i];
  39.         }
  40.        
  41.     }
  42.  
  43.     void edsimvstr() { // выводим символы, встречающиеся один раз
  44.         for (int i = 0; i < line.length(); i++) {
  45.             int count = 0;
  46.             for (int j = 0; (j = line.find(line[i], j)) != std::string::npos; j++) {
  47.                 count++;
  48.             }
  49.             if( count == 1){
  50.                 cout << line[i] << " ";
  51.             }
  52.         }
  53.     }
  54.  
  55.     int dlinastr() { // узнать общее количество символов в строке
  56.         return line.length();
  57.     }
  58.  
  59.     bool  operator! () { // унарный оператор проверки строки
  60.         return !line.empty();
  61.     }
  62.     friend bool operator==(MyStroka line1, MyStroka line2) {
  63.         return (line1.line == line2.line);
  64.     }
  65.     bool sravnenie(MyStroka k) { // сравнить две строки на равенство
  66.         return *this == k;
  67.     }
  68.     friend MyStroka operator+(MyStroka line1, MyStroka line2) { // оператор слияния строк
  69.         return MyStroka(line1.line + line2.line);
  70.     }
  71.     friend ostream& operator<<(ostream& out, MyStroka k) {
  72.         out << k.line;
  73.         return out;
  74.     }
  75.     friend istream& operator>>(istream& in, MyStroka& k) {
  76.         in >> k.line;
  77.         return in;
  78.     }
  79. };
  80.  
  81. int main() {
  82.     MyStroka s("vot stroka111");
  83.     s.kolvocif();
  84.     cout << endl;
  85.     s.edsimvstr();
  86.     cout << endl;
  87.     MyStroka k("abbbbbbc bbbbbbb");
  88.     k.podposl();
  89.     cout << endl;
  90.     cout << k.dlinastr();
  91.     cout << endl;
  92.     MyStroka j("vot stroka111");
  93.     cout << s.sravnenie(j);
  94.     cout << endl;
  95.     cout << !s << endl;
  96.     cout << s + k;
  97. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement