Форум программистов, компьютерный форум CyberForum.ru

Переопределение операций со строками - C++

Восстановить пароль Регистрация
 
n1ko
3 / 3 / 3
Регистрация: 19.05.2013
Сообщений: 84
12.11.2013, 21:38     Переопределение операций со строками #1
Операция переопределения Замена в строке первых n символов на символ с наименьшим кодом из входящих в строку
почему-то работает некорректно
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include <iostream>
#include <conio.h>
 
using namespace std;
 
class Stroka
{
private:
   char* string;
   int n;
public:
   Stroka()
   {
        string = NULL;
   }
   Stroka(char* stringv, int n1)
   {
        string = new char [strlen(stringv) + 1];
        strcpy(string, stringv);
        n=n1;
   }
   Stroka (const Stroka& str)
   {
        string = new char [strlen(str.string) + 1];
        strcpy(string, str.string);
        n=str.n;
   }
 
bool operator > (Stroka& str1)
{
    if(strlen(string)>strlen(str1.string)) 
        return true;
    else 
        return false;
}
Stroka & operator - ()
{
    char min;
    min=string[1];
    for (int i=0;i<strlen(string);i++)
        if (min<string[i]) min=string[i];
    for (int i=strlen(string);i>strlen(string)-n;i--)
        string[i]=min;
    return *this;
}
void print()
   {
       cout << "String is: " << string << "\n";
   }
};
 
void main()
{
    setlocale (0,"rus");
    int n;
    cout<<"Введите кол-во символов\n";
    cin>>n;
    Stroka s1("fkjnv",n);
    Stroka s2("khbdjkss",n);
    Stroka s3("aaaaaaaaaaaaaaggggggggggggggg",n);
    Stroka s4;
 
    if(s1>s2) cout<<"1 строка больше";
    else cout<<"2 строка больше\n";
    s4=-s3;
    s4.print();
    getch();
}
Добавлено через 48 секунд
операция - не правильно работает
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2013, 21:38     Переопределение операций со строками
Посмотрите здесь:

Переопределение операций - значки C++
C++ Переопределение операций
Переопределение операций C++
C++ Переопределение операций
Переопределение операций C++
C++ Переопределение операций
Переопределение операций сложения, инкремента C++
C++ Переопределение операций в одномерном массиве

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4925 / 2668 / 243
Регистрация: 29.11.2010
Сообщений: 7,421
13.11.2013, 01:07     Переопределение операций со строками #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
#include <iostream>
#include <string>
#include <algorithm>
 
class String
{
  public:
    String() : data_(), n_() {}
    String(const std::string& s, const int n) : data_(s), n_(n) {}
 
    void setData(const std::string& s) { data_ = s; }
    void setN(const int n) { n_ = n; }
 
    std::string getData() const { return data_; }
    int getN() const { return n_; }
 
    void modify()
    {
        char min = *std::min_element(data_.begin(), data_.end());
        for (int i=0; i < n_ && i < static_cast<int>(data_.length()); i++)
            data_[i] = min;
    }
 
    void print() const { std::cout << data_ << std::endl; }
 
  protected:
    std::string data_;
    int n_;
};
 
int main()
{
    std::string str;
    int n;
    std::cout << "Enter string: ";
    std::getline(std::cin, str);
    std::cout << "Enter n: ";
    std::cin >> n;
    String s(str, n);
    s.modify();
    s.print();
}
Yandex
Объявления
13.11.2013, 01:07     Переопределение операций со строками
Ответ Создать тему
Опции темы

Текущее время: 00:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru