77 lines
1.4 KiB
C++
77 lines
1.4 KiB
C++
#ifndef _STRING_HPP_
|
||
#define _STRING_HPP_
|
||
#include <string.h>
|
||
#include <mdiwin/windows.hpp>
|
||
class String
|
||
{
|
||
public:
|
||
enum{MaxResourceString=128};
|
||
enum{MaxString=128};
|
||
String(void);
|
||
String(const char *npStr);
|
||
String(const String &newString);
|
||
String(int resourceID,HINSTANCE hInstance);
|
||
virtual ~String();
|
||
int operator!=(const String &someString)const;
|
||
int operator==(const String &someString)const;
|
||
int operator<(const String &someString)const;
|
||
int operator<=(const String &someString)const;
|
||
int operator=(const String &someString);
|
||
int operator=(const char *someCharStar);
|
||
int operator+=(const String &someString);
|
||
int operator+=(const char *someStr);
|
||
operator char *();
|
||
int reserve(unsigned nBytes);
|
||
int token(const char *token);
|
||
void upper(void);
|
||
int strstr(const char *string)const;
|
||
int isNull(void)const;
|
||
private:
|
||
char *mnpStr;
|
||
};
|
||
|
||
inline
|
||
String::String()
|
||
: mnpStr(0)
|
||
{
|
||
reserve(MaxString);
|
||
}
|
||
|
||
inline
|
||
String::String(const char *npStr)
|
||
: mnpStr(0)
|
||
{
|
||
if(!::strlen(npStr))return;
|
||
mnpStr=new char[::strlen(npStr)+1];
|
||
::strcpy(mnpStr,npStr);
|
||
}
|
||
|
||
inline
|
||
String::String(const String &newString)
|
||
: mnpStr(0)
|
||
{
|
||
if(!::strlen(newString.mnpStr))return;
|
||
mnpStr=new char[::strlen(newString.mnpStr)+1];
|
||
::strcpy(mnpStr,newString.mnpStr);
|
||
}
|
||
|
||
inline
|
||
String::~String()
|
||
{
|
||
if(mnpStr)delete mnpStr;
|
||
}
|
||
|
||
inline
|
||
String::operator char *()
|
||
{
|
||
return mnpStr;
|
||
}
|
||
|
||
inline
|
||
int String::isNull(void)const
|
||
{
|
||
if(!mnpStr||(mnpStr&&!*mnpStr))return 1;
|
||
return 0;
|
||
}
|
||
#endif
|
||
|