亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? string.ho

?? 開放源碼的編譯器open watcom 1.6.0版的源代碼
?? HO
字號:
#ifndef STRING_H
#define STRING_H

/*$Header: D:\plustest\regress\nih\x:\groupdir\cproj\plustest\regress\nih\rcs\string.ho 1.1 92/11/10 10:12:26 Anthony_Scian Exp $*/

/* String.h -- declarations for character strings

        THIS SOFTWARE FITS THE DESCRIPTION IN THE U.S. COPYRIGHT ACT OF A
        "UNITED STATES GOVERNMENT WORK".  IT WAS WRITTEN AS A PART OF THE
        AUTHOR'S OFFICIAL DUTIES AS A GOVERNMENT EMPLOYEE.  THIS MEANS IT
        CANNOT BE COPYRIGHTED.  THIS SOFTWARE IS FREELY AVAILABLE TO THE
        PUBLIC FOR USE WITHOUT A COPYRIGHT NOTICE, AND THERE ARE NO
        RESTRICTIONS ON ITS USE, NOW OR SUBSEQUENTLY.

Authors:
        C. J. Eppich and K. E. Gorlen
        Bg. 12A, Rm. 2033
        Computer Systems Laboratory
        Division of Computer Research and Technology
        National Institutes of Health
        Bethesda, Maryland 20892

$Log:   string.ho $
Revision 1.1  92/11/10  10:12:26  Anthony_Scian
.

 * Revision 3.0  90/05/20  00:21:38  kgorlen
 * Release for 1st edition.
 * 
*/

#include "Object.h"
#include <string.h>
#include <malloc.h>

const unsigned DEFAULT_STRING_EXTRA = 15;
class String;
class Range;

class SubString : public NIHCL {
        char* sp;               // substring pointer 
        unsigned sl;            // substring length 
        String* st;             // String this is a SubString of
        SubString(const String&, unsigned, unsigned);
        SubString(const SubString& ss) {
                sp = ss.sp; sl = ss.sl; st = ss.st;
        }
        int compare(const char*) const;
        int compare(const String&) const;
        int compare(const SubString&) const;
        void replace(const char* st, unsigned ln);
        void checkSubStr() const;
        friend class String;
public:
        const char* ptr() const { return sp; }
        unsigned position() const;
        unsigned length() const { return sl; }

        void operator=(const String&);
        void operator=(const SubString&);
        void operator=(const char*);

        bool operator<(const String&) const;
        bool operator>(const String&) const;
        bool operator<=(const String&) const;
        bool operator>=(const String&) const;
        bool operator==(const String&) const; 
        bool operator!=(const String&) const;

        bool operator<(const SubString& ss) const       { return compare(ss)<0; } 
        bool operator>(const SubString& ss) const       { return compare(ss)>0; }
        bool operator<=(const SubString& ss) const      { return compare(ss)<=0; }
        bool operator>=(const SubString& ss) const      { return compare(ss)>=0; }
        bool operator==(const SubString& ss) const      { return compare(ss)==0; }
        bool operator!=(const SubString& ss) const      { return compare(ss)!=0; }

        bool operator<(const char* cs) const    { return compare(cs) < 0; }   
        bool operator>(const char* cs) const    { return compare(cs) > 0; }   
        bool operator<=(const char* cs) const   { return compare(cs) <= 0; }
        bool operator>=(const char* cs) const   { return compare(cs) >= 0; }
        bool operator==(const char* cs) const   { return compare(cs) == 0; }
        bool operator!=(const char* cs) const   { return compare(cs) != 0; }

        friend bool operator<(const char* cs, const SubString& ss) {
            return ss.compare(cs) > 0;
        }
        friend bool operator>(const char* cs, const SubString& ss) {     
            return ss.compare(cs) < 0;
        }
        friend bool operator<=(const char* cs, const SubString& ss) { 
            return ss.compare(cs) >= 0; 
        }
        friend bool operator>=(const char* cs, const SubString& ss) { 
            return ss.compare(cs) <= 0;
        }
        friend bool operator==(const char* cs, const SubString& ss) {
            return ss.compare(cs) == 0; 
        }
        friend bool operator!=(const char* cs, const SubString& ss) {
            return ss.compare(cs) != 0; 
        }

        String operator&(const String&) const;
        String operator&(const SubString&) const;
        String operator&(const char*) const;
        friend String operator&(const char*, const SubString&);

        void dumpOn(ostream& strm =cerr) const;
        void printOn(ostream& strm =cout) const;
};

class String: public VIRTUAL Object {
        DECLARE_MEMBERS(String);
        char* p;                // character string
        unsigned len;           // length of string, excluding null character
        unsigned alloc;         // amount of storage allocated
        void indexRangeErr() const;
        friend class SubString;
protected:              // storer() functions for object I/O
        virtual void storer(OIOofd&) const;
        virtual void storer(OIOout&) const;             
public:
        String(const char& c, unsigned l=1, unsigned extra=DEFAULT_STRING_EXTRA);
        String();
        String(unsigned extra);
        String(const char*);
        String(const char*, unsigned extra);
        String(const String&);
        String(const String&, unsigned extra);
        String(const SubString&);
        String(const SubString&, unsigned extra);
        ~String();
        operator const char*() const    { return p; }
        SubString operator()(unsigned pos, unsigned lgt);
        const SubString operator()(unsigned pos, unsigned lgt) const;
        SubString operator()(const Range& r);
        const SubString operator()(const Range& r) const;
        char& operator[](unsigned i) {
                if (i >= len) indexRangeErr();
                return p[i];
        }
        char operator[](unsigned i) const {
                if (i >= len) indexRangeErr();
                return p[i];
        }

        void operator=(const String&);
        void operator=(const SubString&);
        void operator=(const char*);

        bool operator<(const String& s) const   { return strcmp(p, s.p) < 0; }
        bool operator>(const String& s) const   { return strcmp(p, s.p) > 0; }
        bool operator<=(const String& s) const  { return strcmp(p, s.p) <= 0; }
        bool operator>=(const String& s) const  { return strcmp(p, s.p) >= 0; }
        bool operator==(const String& s) const;
        bool operator!=(const String& s) const  { return !(*this==s); }

        bool operator<(const SubString& ss) const       { return ss.compare(*this) > 0; }
        bool operator>(const SubString& ss) const       { return ss.compare(*this) < 0; }
        bool operator<=(const SubString& ss) const      { return ss.compare(*this) >= 0; }
        bool operator>=(const SubString& ss) const      { return ss.compare(*this) <= 0; }
        bool operator==(const SubString& ss) const      { return ss.compare(*this) == 0; }
        bool operator!=(const SubString& ss) const      { return ss.compare(*this) != 0; }

        bool operator<(const char* cs) const    { return strcmp(p,cs) < 0; }   
        bool operator>(const char* cs) const    { return strcmp(p,cs) > 0; }   
        bool operator<=(const char* cs) const   { return strcmp(p,cs) <= 0; }
        bool operator>=(const char* cs) const   { return strcmp(p,cs) >= 0; }
        bool operator==(const char* cs) const   { return strcmp(p,cs) == 0; }
        bool operator!=(const char* cs) const   { return strcmp(p,cs) != 0; }

        friend bool operator<(const char* cs, const String& s) {
            return strcmp(cs, s.p) < 0;
        }
        friend bool operator>(const char* cs, const String& s) {         
            return strcmp(cs, s.p) > 0;
        }
        friend bool operator<=(const char* cs, const String& s) { 
            return strcmp(cs, s.p) <= 0; 
        }
        friend bool operator>=(const char* cs, const String& s) { 
            return strcmp(cs, s.p) >= 0;
        }
        friend bool operator==(const char* cs, const String& s) {
            return strcmp(cs, s.p) == 0; 
        }
        friend bool operator!=(const char* cs, const String& s) {
            return strcmp(cs, s.p) != 0; 
        }

        String operator&(const String& s) const;
        String operator&(const SubString& ss) const;
        String operator&(const char* cs) const;
        friend String operator&(const char*, const SubString&);
        friend String operator&(const char* cs, const String& s);

        String& operator&=(const String&);
        String& operator&=(const SubString&);
        String& operator&=(const char* cs);

        char& at(unsigned i)                    { return (*this)[i]; }
        char at(unsigned i) const               { return (*this)[i]; }
        unsigned length() const { return len; } 
        unsigned reSize(unsigned new_capacity);

        virtual void toAscii();
        virtual void toLower();
        virtual void toUpper();
        virtual unsigned capacity() const;
        virtual int compare(const Object& ob) const;
        virtual void deepenShallowCopy();
        virtual unsigned hash() const;
        virtual bool isEqual(const Object&) const;
        virtual void printOn(ostream& strm =cout) const;
        virtual void scanFrom(istream& strm);
        virtual unsigned size() const;
        virtual const Class* species() const;
};

inline ostream& operator<<(ostream& strm, const SubString& ss)
{
        ss.printOn(strm);
        return(strm);
}

inline SubString::SubString(const String& s, unsigned pos, unsigned lgt)
{ 
        sp = &((String&)s).p[pos];
        sl = lgt;
        st = &(String&)s;
        checkSubStr();
}
        
inline unsigned SubString::position() const     { return sp - st->p; }

inline SubString String::operator()(unsigned pos, unsigned lgt)
{       
        return SubString(*this, pos, lgt);
}

inline const SubString String::operator()(unsigned pos, unsigned lgt) const
{       
        return SubString(*this, pos, lgt);
}

inline bool SubString::operator<(const String& s) const { return compare(s) < 0; }
inline bool SubString::operator>(const String& s) const { return compare(s) > 0; }
inline bool SubString::operator<=(const String& s) const { return compare(s) <= 0; }
inline bool SubString::operator>=(const String& s) const { return compare(s) >= 0; }
inline bool SubString::operator==(const String& s) const { return compare(s) == 0; }
inline bool SubString::operator!=(const String& s) const { return compare(s) != 0; }

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国精品国产| 精品一区二区在线看| 欧美电影一区二区三区| 欧美日韩一区二区三区高清| 日本高清不卡视频| 在线一区二区观看| 精品一区二区在线看| 国产精品成人在线观看| 69精品人人人人| 成人高清免费在线播放| 亚洲一区二区三区小说| 久久精品水蜜桃av综合天堂| 欧美一区二区成人| 成人av电影免费观看| 欧美aⅴ一区二区三区视频| 亚洲欧美日韩国产综合| 久久精品视频免费观看| 国产一区二区三区久久悠悠色av| 久久久久99精品一区| 99riav久久精品riav| gogo大胆日本视频一区| 91在线观看美女| 欧美日韩高清在线播放| 亚洲精品国产高清久久伦理二区| 欧美日韩国产综合视频在线观看| 美女尤物国产一区| 欧美日韩一区二区在线观看视频 | 欧洲亚洲精品在线| 国产91在线观看| 日韩欧美视频在线| 日韩一区二区麻豆国产| 精品1区2区在线观看| 国产日韩欧美综合一区| 日韩高清电影一区| 99久久综合精品| 欧美人牲a欧美精品| 欧美精品 国产精品| 欧美r级在线观看| 99精品热视频| jizz一区二区| 99re这里都是精品| 成人av影视在线观看| 国产精品一品二品| 麻豆国产精品一区二区三区 | 国产精品伦理一区二区| 欧美综合亚洲图片综合区| 欧美aaa在线| 日日骚欧美日韩| 国产精品免费视频观看| 午夜不卡在线视频| 欧美另类一区二区三区| 国产精品一区三区| 亚洲欧洲国产日韩| 国产精品久久久久久久第一福利| 久久精品视频免费观看| 日韩精品自拍偷拍| 国产亚洲女人久久久久毛片| 亚洲精品国久久99热| www国产成人免费观看视频 深夜成人网| 成人免费av在线| 亚洲v中文字幕| 国产色综合久久| 久久亚洲一级片| 一卡二卡三卡日韩欧美| 美国一区二区三区在线播放| 成人性生交大片免费看视频在线 | 日韩免费电影一区| 亚洲精品国产成人久久av盗摄 | 91精品免费观看| 亚洲黄色片在线观看| 理论电影国产精品| av亚洲精华国产精华精| 色欧美乱欧美15图片| 99久久精品99国产精品| xnxx国产精品| 一区二区中文视频| 五月激情综合婷婷| 国内精品不卡在线| 日韩一卡二卡三卡| 国产欧美久久久精品影院| 久久久国产一区二区三区四区小说| 中文字幕一区二区日韩精品绯色| 亚洲成av人片在线观看无码| 国产在线麻豆精品观看| 午夜激情久久久| 精品奇米国产一区二区三区| 国产在线日韩欧美| 亚洲男人电影天堂| 制服丝袜在线91| 国产精品一线二线三线精华| 三级久久三级久久| 欧美色视频在线| 麻豆极品一区二区三区| 一本到不卡免费一区二区| 欧美一级理论性理论a| 一区二区三区在线播放| 欧美日韩精品电影| 奇米亚洲午夜久久精品| 欧美日韩免费在线视频| 精品无人区卡一卡二卡三乱码免费卡 | 91精品国产综合久久福利| 国产成人三级在线观看| 久久精品国产网站| 石原莉奈一区二区三区在线观看| 亚洲乱码国产乱码精品精小说 | 欧美色精品在线视频| 亚洲国产一区二区视频| 日本电影欧美片| 亚洲动漫第一页| 精品福利在线导航| 成人黄色小视频在线观看| 亚洲人成影院在线观看| 日韩高清一区二区| 日本一区二区三区dvd视频在线| 亚洲国产精品嫩草影院| 欧美国产一区视频在线观看| 欧美日韩成人高清| 婷婷中文字幕综合| 精品国产污网站| 国产精品一区一区| 蜜桃久久久久久| 五月婷婷久久综合| 亚洲一区欧美一区| 亚洲欧美色综合| 国产精品久线在线观看| 久久人人爽爽爽人久久久| 欧美人与性动xxxx| 欧美精品免费视频| 欧美日韩久久一区二区| 成人性生交大片| 精品一区二区免费在线观看| 美女一区二区视频| 欧美亚洲一区二区在线观看| 成人高清免费在线播放| 综合在线观看色| 久久一日本道色综合| 91丨porny丨最新| 欧美日韩亚洲综合在线| 91麻豆国产在线观看| 8x8x8国产精品| 欧美成人福利视频| 欧美亚洲国产怡红院影院| 色综合久久综合网97色综合| 国产成人精品三级麻豆| 日韩欧美精品在线| 中文字幕在线不卡一区| 国产成a人亚洲精| 麻豆91精品视频| 91豆麻精品91久久久久久| 一区在线观看免费| 制服丝袜日韩国产| 亚洲日本电影在线| 在线观看av不卡| 亚洲国产日产av| 久久久www成人免费无遮挡大片| 久久免费美女视频| 亚洲欧美另类在线| 色乱码一区二区三区88| 国产高清不卡二三区| 欧美老女人第四色| 日韩伦理免费电影| 亚洲一区二区在线观看视频 | 亚洲免费在线看| 五月婷婷久久综合| 91精品国产品国语在线不卡| 中文字幕乱码亚洲精品一区| 亚洲自拍偷拍九九九| 日韩精品色哟哟| 精品久久久久av影院| 日本一区二区三区电影| 成人免费在线播放视频| 亚洲 欧美综合在线网络| 精品在线一区二区三区| 成人av先锋影音| 欧美丰满嫩嫩电影| 国产精品入口麻豆九色| 午夜精品视频在线观看| 国产大陆a不卡| 欧美日韩三级视频| 美女在线一区二区| 男女视频一区二区| 国产精品久久久久天堂| 奇米影视一区二区三区小说| 91精品国模一区二区三区| www国产成人| 色综合久久久久综合| 亚洲va欧美va天堂v国产综合| 日韩一区二区麻豆国产| 国产iv一区二区三区| 亚洲国产精品麻豆| 欧美日韩国产经典色站一区二区三区 | 自拍偷在线精品自拍偷无码专区 | 国产91高潮流白浆在线麻豆 | 国产精品九色蝌蚪自拍| 欧美国产成人精品| 亚洲成人中文在线| 黄色日韩网站视频| 激情都市一区二区| 国产一区二区免费视频| 另类小说色综合网站|