diff options
added new examples
1 files changed, 45 insertions, 0 deletions
| -rw-r--r-- | Classes/String/String.h | 45 |
diff --git a/Classes/String/String.h b/Classes/String/String.h new file mode 100644 index 0000000..37bbc6d --- /dev/null +++ b/Classes/String/String.h @@ -0,0 +1,45 @@ +#ifndef STRING_HDR +#define STRING_HDR + +#include<iostream> +#include<fstream> + +const int MAX_SIZE = 1024; + +class String { + +private: + char* str; + int len; + + void CopyFrom(const String& other); + void Free(); + +public: + String(); + String(char ch); + String(const char* str); + String(const String& other); + String& operator=(const String& other); + ~String(); + + int getLenght() const; + String SubString(int start); + String SubString(int start, int end); + int IndexOf(const String& other, int index); //return the index of the first encounter of other in the object + int IndexOf(const char* str, int index); //reusing IndexOf(const String& other, int index) + int CountOcurences(String str); // How many times a string is found as substring + int GetOcurence(String str, int i); //Get if the i-th substring (count start from 1) + + const char& operator[](int index) const; + char& operator[](int index); + String& operator+=(const String& other); //return the concatenation of the object with other + friend bool operator==(const String& lhs, const String& rhs); //return true if two strings are equivalent + friend bool operator!=(const String& lhs, const String& rhs); //return true if two strings are not equivalent + friend std::ostream& operator<<(std::ostream& os, const String& obj); + friend std::istream& operator>>(std::istream& is, String& obj); + + String* Split(String str); +}; +const String operator+(const String& lhs, const String& rhs); +#endif // !STRING_HDR
\ No newline at end of file |
