Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- using namespace std;
- class MyStroka {
- string line;
- public:
- MyStroka() { };
- MyStroka(string line) { this ->line = line; }
- void kolvocif() { // количество цифр в строке
- int count = 0;
- for (int i = 0; i < line.length(); i++) {
- if (isdigit(line[i]) == true) {
- count++;
- }
- }
- cout << count;
- }
- void podposl() { // выводим самую длинную подпоследовательность
- int n = 0;
- int c = 0;
- int maxim = 0;
- int a = 0; int b = 0; int y = 0;
- while (n < line.length()) {
- c = n;
- while (line[n] == line[c++] && c <= line.length()) {
- if ((n - c + 1) > maxim) {
- maxim = n - c + 1;
- }
- }
- a = n; b = c;
- n = c;
- }
- for (int i = a-1; i <= b - 1; i++) {
- cout << line[i];
- }
- }
- void edsimvstr() { // выводим символы, встречающиеся один раз
- for (int i = 0; i < line.length(); i++) {
- int count = 0;
- for (int j = 0; (j = line.find(line[i], j)) != std::string::npos; j++) {
- count++;
- }
- if( count == 1){
- cout << line[i] << " ";
- }
- }
- }
- int dlinastr() { // узнать общее количество символов в строке
- return line.length();
- }
- bool operator! () { // унарный оператор проверки строки
- return !line.empty();
- }
- friend bool operator==(MyStroka line1, MyStroka line2) {
- return (line1.line == line2.line);
- }
- bool sravnenie(MyStroka k) { // сравнить две строки на равенство
- return *this == k;
- }
- friend MyStroka operator+(MyStroka line1, MyStroka line2) { // оператор слияния строк
- return MyStroka(line1.line + line2.line);
- }
- friend ostream& operator<<(ostream& out, MyStroka k) {
- out << k.line;
- return out;
- }
- friend istream& operator>>(istream& in, MyStroka& k) {
- in >> k.line;
- return in;
- }
- };
- int main() {
- MyStroka s("vot stroka111");
- s.kolvocif();
- cout << endl;
- s.edsimvstr();
- cout << endl;
- MyStroka k("abbbbbbc bbbbbbb");
- k.podposl();
- cout << endl;
- cout << k.dlinastr();
- cout << endl;
- MyStroka j("vot stroka111");
- cout << s.sravnenie(j);
- cout << endl;
- cout << !s << endl;
- cout << s + k;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement