Browse Source

numbers in string builder

master
n0m1s 6 years ago
parent
commit
0b194fe2ad
2 changed files with 32 additions and 0 deletions
  1. +28
    -0
      string_builder.cpp
  2. +4
    -0
      string_builder.h

+ 28
- 0
string_builder.cpp View File

@ -33,6 +33,34 @@ void StringBuilder::append(char const c)
m_front = new_front;
}
void StringBuilder::append_number(int x)
{
if(x < 0)
{
this->append('-');
x = -x;
}
int max_divider = 10;
while(x/max_divider > 10)
max_divider*=10;
while(max_divider > 0)
{
char c = x/max_divider;
x = x%max_divider;
max_divider /= 10;
this->append_digit(c);
}
}
void StringBuilder::append_digit(char x)
{
x = (x % 10) + '0';
this->append(x);
}
char* StringBuilder::to_string() const
{
char* ret = new char[m_size + 1];


+ 4
- 0
string_builder.h View File

@ -26,6 +26,8 @@ class StringBuilder
void append(char const c);
inline void operator += (char const c) {this-> append(c);}
void append_number(int x);
/**
* @brief get the string
*
@ -51,6 +53,8 @@ class StringBuilder
char m_c;
};
void append_digit(char x);
protected:
unsigned int m_size;
Node * m_front;


Loading…
Cancel
Save