www.pudn.com > Ftpwork > String.cpp
#include#include #include #include "./String.h" String::String() { _string = new char[0]; } String::String(const char * string) { _string = new char[strlen(string)+1]; strcpy(_string, string); } int String::toInt() { return atoi(_string); } long String::toLong() { return atol(_string); } double String::toDouble() { return atof(_string); } const char String::operator[](const int index) { return _string[index]; } const char* String::buffer() { return _string; } String& String::operator=(const String & str) { if(this == &str) return *this; int length = strlen(str._string); if(_string != NULL) delete _string; _string =new char[ length+1]; strcpy(_string, str._string); return *this; } String& String::operator=(const char* str) { int length =strlen(str)+1; if(_string != NULL ) delete[] _string; _string =new char[ length]; strcpy(_string, str); return *this; } String& String::operator+(const String & str) { int length =strlen(_string); char *temp = new char[length+1]; temp = strcpy(temp, _string); delete _string; length +=strlen(str._string); _string = new char[ length +1]; _string = strcpy(_string, temp); _string = strcat(_string, str._string); return *this; } String& String::operator+(const char* str) { int length =strlen(_string); char* temp = new char[length+1]; temp = strcpy(temp, _string); delete _string; length +=strlen(str); _string = new char[ length +1]; _string = strcpy(_string, temp); _string = strcat(_string, str); return *this; } String& String::operator+=(const String & str) { return *this+str; } String& String::operator+=(const char* str) { return *this+str; } BOOL String::operator==(const String& str) { if( this == &str) return TRUE; else if( strcmp(this->_string, str._string) ==0) return TRUE; return FALSE; } const int String::indexof(const char ch) { for(unsigned int k=0;k _string, str); if(pchar == NULL) return -1; else return (pchar - _string); } const int String::indexof(const String& str) { return indexof(str._string); } const char String::getAt(const int index) { return _string[index]; } const char String::putAt(const int index, const char ch) { return _string[index]=ch; } String::~String() { if(_string !=NULL) delete _string; }