/* * Seven Kingdoms: Ancient Adversaries * * Copyright 1997,1998 Enlight Software Ltd. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . * */ //Filename : OSTR.H //Description : Header file of object String #ifndef __OSTR_H #define __OSTR_H #ifndef __STRING_H #include #endif //--------- Define macro ant ------------// #define LEFT_JUSTIFY 0 #define CENTER_JUSTIFY 1 #define RIGHT_JUSTIFY 2 #define NOCLIP 0 #define CLIP 1 #define MAX_STR_LEN 200 //------- Define class String --------------// class String { public: char str_buf[MAX_STR_LEN+1]; public: String(); // default ructor; String( char *s); String( String& s); char* upper(); char* lower(); int len() { return strlen(str_buf); } int at(char*); char* right(int needLen) { return substr( len()-needLen ); } char* left(int needLen) { return substr( 0, needLen ); } char* substr(int, int=0); //-------- class overloaded operators -----------// operator char*() { return str_buf; } String& operator=( String&); // str1 = str String& operator=( char*); // str1 = char* String& operator=( long ); // str1 = long String& operator+=( String&); // str1 += str String& operator+=( char*); // str1 += char* String& operator+=( long ); // str1 += long String& operator*=(int n); // str1 *= n char operator[](int n) { return str_buf[n]; } //----------- string comparsion functions ----------// friend int operator == ( String& s1, String& s2) { return strcmp(s1.str_buf,s2.str_buf)==0; } friend int operator == ( String& s1, char* s2) { return strcmp(s1.str_buf,s2)==0; } friend int operator == ( char* s1, String& s2) { return strcmp(s1,s2.str_buf)==0; } friend int operator != ( String& s1, String& s2) { return strcmp(s1.str_buf,s2.str_buf)!=0; } friend int operator != ( String& s1, char* s2) { return strcmp(s1.str_buf,s2)!=0; } friend int operator != ( char* s1, String& s2) { return strcmp(s1,s2.str_buf)!=0; } friend int operator < ( String& s1, String& s2) { return strcmp(s1.str_buf,s2.str_buf)<0; } friend int operator < ( String& s1, char* s2) { return strcmp(s1.str_buf,s2)<0; } friend int operator < ( char* s1, String& s2) { return strcmp(s1,s2.str_buf)<0; } friend int operator > ( String& s1, String& s2) { return strcmp(s1.str_buf,s2.str_buf)>0; } friend int operator > ( String& s1, char* s2) { return strcmp(s1.str_buf,s2)>0; } friend int operator > ( char* s1, String& s2) { return strcmp(s1,s2.str_buf)>0; } friend int operator <= ( String& s1, String& s2) { return strcmp(s1.str_buf,s2.str_buf)<=0; } friend int operator <= ( String& s1, char* s2) { return strcmp(s1.str_buf,s2)<=0; } friend int operator <= ( char* s1, String& s2) { return strcmp(s1,s2.str_buf)<=0; } friend int operator >= ( String& s1, String& s2) { return strcmp(s1.str_buf,s2.str_buf)>=0; } friend int operator >= ( String& s1, char* s2) { return strcmp(s1.str_buf,s2)>=0; } friend int operator >= ( char* s1, String& s2) { return strcmp(s1,s2.str_buf)>=0; } }; //------------------------------------------------------// #endif