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

Наследование\строки - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Класс наследуемый от двух базовых классов http://www.cyberforum.ru/cpp-beginners/thread314039.html
Друзья Являеться ли класс (А)- Классом наследуемым от двух базовых классов? Если не правильно то как нужно написать ?.Помогите врозумить ситуацию. class A :public B:public C { }; class B { }; class C {
C++ Формирование предложений. Здравствуйте. Дан массив слов. Сформировать предложения из слов, в которых первые k букв совпадают. В результате – массив предложений. Выполнить, используя функции библиотеки <string.h>. Посимвольное обращение к элементам строки допустимо только для проверки на ‘\0’ и для установки ‘\0’. Не требовать ввода количества слов в массиве. Признаком окончания ввода массива является пустая строка.... http://www.cyberforum.ru/cpp-beginners/thread314038.html
C++ Mасив turbo С++
Вычислить сумму и количество четных элементов одномерного массива, и записать в строковую переменную последовательно нечетные элементы. Количество элементов массива должен задавать пользователь. Вывод на экран результатов в понятном виде. Буду благодарен если поможете!
Запись символов CR и LF в COM порт C++
Ребят, как записать в COM порт символы возврата каретки и переноса сроки CR и LF? При попытке записи посредствам команды WriteFile, каждый символ транслируется в HEX, всё бы ничего, но символы CR и LF транслируются не правильно. Как бы сделать так, чтоб они транслировались именно в 0D и 0A ?
C++ Обработка строк и работа с файлами... http://www.cyberforum.ru/cpp-beginners/thread314003.html
Работа с обработкой строк и работу с файлами средствами языка Си. Исходный текст должен содержаться в одном файле, результат — во втором файле. Читая файл посимвольно, перевести каждый символ нижнего регистра на верхний регистр. В тексте несколько строк.
C++ Из списка студентов на экран вывести данные о тех, кто учится в группе 664, проживает в общежитии, но родился в городе Ижевске Утро доброе! Подскажите пжста! Из списка студентов на экран вывести данные о тех, кто учится в группе 664, проживает в общежитии, но родился в городе Ижевске. Исходные данные и результат должно размещаться в текстовом файле. подробнее

Показать сообщение отдельно
talis
 Аватар для talis
789 / 541 / 37
Регистрация: 11.05.2010
Сообщений: 1,298
Записей в блоге: 1
06.06.2011, 12:06     Наследование\строки
Как-то так:

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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#include <iostream>
#include <string.h>
 
using namespace std;
 
class String                    //user-defined string type
{
protected:
        static const int SZ = 80;         //size of all String objects
        char str[SZ];             //holds a C-string
public:
        String()                  //no-arg constructor
        { str[0] = '\0'; }
        String( char s[] )        //1-arg constructor
        { strcpy(str, s); }    //   convert C-string to String
 
        void display() const      //display the String
        { cout << str; }
        operator char*()          //conversion operator
        { return str; }        //convert String to C-string
};
 
class Pstring : public String
{
public:
        Pstring()
        {}
        Pstring(char s[])
        {
 
                /*if (strlen(s) > SZ-1)
                {
                        int j;
                        for (j=0; j<SZ-1; j++)
                                str[j]=s[j];
                        str[j]='\0';
                }
 
                else
                        strcpy(str, s);*/
 
 
                strncpy( str, s, SZ-1 );  // так проще :)
        };
};
 
class Pstring2 : public Pstring
{
public:
    Pstring2() : Pstring()
    {}
    Pstring2(char s[]) : Pstring(s)
    {}
 
    // скопировать СЮДА первые n символов src
    Pstring2 & left( Pstring2 & src, int n )
    {
        /*if( n >= SZ )
           n = SZ - 1;*/
 
        strncpy( str, (char*)src, n );
        str[n] = 0;
 
        return *this;
    }
 
    // скопировать СЮДА n символов src, начиная с s.
    Pstring2 & mid( Pstring2 & src, int s, int n )
    {
        char * begin = &((char*)src)[s];
 
        strncpy( str, begin, n );
        str[ n ] = 0;
 
        return *this;
    }
 
    // скопировать СЮДА n последних символов src
    Pstring2 & right( Pstring2 & src, int n )
    {
        char * begin = (char*)src;
        begin = &begin[ strlen(begin) - n ];
 
        strcpy( str, begin );
 
        return *this;
    }
};
 
int main()
{
    Pstring2 str1, s1;
 
    s1 = "This is just a boring test string.";
 
    str1.left(s1, 5);
    str1.display();
 
    cout << endl;
 
    str1.mid(s1, 15, 5);
    str1.display();
 
    cout << endl;
 
    str1.right(s1, 15);
    str1.display();
 
    cout << endl;
 
    str1.right( str1.left( s1, 21 ), 13 );
    str1.display();
    cout << endl;
 
    return 0;
}
Удачи.
 
Текущее время: 22:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru