Files
Work/mdiwin/STRING.HPP
2024-08-07 09:16:27 -04:00

77 lines
1.4 KiB
C++
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#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