From 43898d9c59fe06622f651cb8f1d885cbcadca85d Mon Sep 17 00:00:00 2001 From: Kamil Kaminski Date: Wed, 6 Jul 2011 20:33:45 -0500 Subject: initial import --- string.h | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 string.h (limited to 'string.h') diff --git a/string.h b/string.h new file mode 100644 index 0000000..dc9ebfc --- /dev/null +++ b/string.h @@ -0,0 +1,73 @@ +/* string.h + * + */ + +#ifndef _MYSTRING_ +#define _MYSTRING_ + +#include +#include + +using namespace std; + +class MyString +{ + friend bool operator==(const MyString&, const MyString &); + friend ostream& operator<<(ostream&, const MyString &); + + private: + char *str_; + int length_; + MyString(int); + + public: + MyString(); + MyString(char); + MyString(const char *); + MyString(const MyString &); + MyString& operator=(const MyString &); + ~MyString(); + + int length() const; + int indexOf(char, int = 0) const; + bool isSubstring(const MyString &) const; + bool isSubstring(const char *) const; + MyString& concat(const MyString &); + MyString& concat(const char *); + void printStr(void) const; + + MyString operator!() const; + char& operator[](int); + char operator[](int) const; +}; + +bool operator==(const MyString&, const MyString &); +ostream& operator<<(ostream&, const MyString &); + +inline MyString::MyString() +{ + length_ = 0; + str_ = new char[1]; + str_[0] = '\0'; +} + +inline MyString::MyString(char ch) +{ + length_ = 1; + str_ = new char[2]; + str_[0] = ch; + str_[1] = '\0'; +} + +inline int MyString::length() const +{ + return length_; +} + +inline void MyString::printStr(void) const +{ + cout << "length: " << length_ << ", value: \"" << str_ <<"\""; +} + +#endif + -- cgit v1.2.3