Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "../str.h"
- #include <iostream>
- class darkstring
- {
- friend darkstring & operator +=( darkstring & lhs, char const* rhs );
- friend std::ostream & operator <<( std::ostream & lhs, darkstring const & rhs );
- private:
- char *dstr;
- unsigned int dstrlength;
- public:
- darkstring(const char* str)
- {
- int i=0,length=mystrlen(str);
- dstrlength=length;
- dstr=new char[length+1];
- while(i < length)
- {
- dstr[i]=str[i];
- i++;
- }
- dstr[i]='\0';
- }
- unsigned int size() const
- {
- return dstrlength;
- }
- };
- darkstring & operator+=(darkstring & lhs, char const* rhs )
- {
- int newLength=lhs.size() + mystrlen(rhs)+1, lhs_size=lhs.size();
- int i=0,y=0;
- char *newSTR=new char[newLength];
- while(i<lhs_size-1)
- {
- newSTR[i]=lhs.dstr[i];
- i++;
- }
- while(i<newLength-1)
- {
- newSTR[i]=rhs[y];
- y++;
- i++;
- }
- //Nullbyte
- newSTR[i]='\0';
- delete[](lhs.dstr);
- lhs.dstr=newSTR;
- return lhs;
- }
- std::ostream & operator<<(std::ostream & lhs, darkstring const & rhs )
- {
- return lhs<<rhs.dstr;
- }
- int main(int argc, char** argv)
- {
- darkstring str="Hallo";
- str +=" Welt";
- std::cout << str;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement