1

Тема: Власний клас string

Треба створити власний клас string, щоб пришвидшити код та звести баги до мінімуму, пишу якомога на нижчому рівні.
string.h

#include <stdio.h>
class string
{
    public:
    char* str;
    int len;
        char* tstr;
        char* ttstr;
        int init(int n, const char* st)
    {
        if(n>0) {
            str=new char[n];
                        len=sizeof(st);
        }
        else return -1;
        
                for (int a=0; a<len; a++) str[a]=st[a];
        return 0;
    }
};

Мені треба передбачити ситуацію "якщо кількість елементів масиву str стане більшою, ніж int?". "якщо розмір пам'яті може стати більшим, ніж обмеження пам'яті на процес в ОС"
А взагалі, треба зробити так, щоб у нього не було ніяких лімітів. Щоб працювало від МК до потужних кластерів.

2

Re: Власний клас string

Поки зроблю цей параметр user-defined. Ще хотілось би зробити якось простіше функцію

int parse_back(string st)
{
        if(st.len>0) {
            char* tb=new char[st.len+len];
            for (int i=0; i<st.len; i++) tb[i]=str[i];
            for (int i=st.len-1; i<st.len+len; i++) tb[i]=st.str[i];
            
            str=new char[st.len+len];
            for (int i=0; i<st.len; i++) str[i]=tb[i];
                
            }
        
    
        else return -1;        
        return 0;    
            
}

3

Re: Власний клас string

От пам'ятаю, що там використовувалося чи то memcpy, чи щось співзвучне, щоб копіювати без тимчасового буфера

4

Re: Власний клас string

А на*й його, використаю стандартну лібру!

5

Re: Власний клас string

Рос. Тема тут:

cyberforum.sru

СПАМ

Не маю головної цілі стати порталом (передавачем інфи) між форумами, тому подальше обговорення буде там

6

Re: Власний клас string

Прихований текст

Не розумію, чому посилання на мою тему було видалено та названо спамом,
а також чому cyberforum.ru був перейменований в cyberforum.sru
Там відмовилися допомагати. І тут відмовляються, чомусь. Пошукаю інший форум.

Знайшов ось цей код:

char * __cdecl strcat (
        char * dst,
        const char * src
        )
{
        char * cp = dst;
 
        while( *cp )
                cp++;                   /* find end of dst */
 
        while( *cp++ = *src++ ) ;       /* Copy src to end of dst */
 
        return( dst );                  /* return dst */
 
}

А ще дізнався, що є функція memcpy:
http://www.cplusplus.com/reference/cstring/memcpy/
Та я не розумію, як це все докупи скласти, щоб скопіювати дані з одного масива в інший, без перестворення іншого. Може я багато хочу, але наче ж завдання таке просте, може хтось допоможе?