📄 hnstring.cc
字号:
/* * HnString.cc * * DO NOT EDIT THIS FILE! * * This file is automatically generated by obj2ptr. * 1997/06/02 21:18:59 */#include "HnString.hh"#include "HnStringObj.hh"/* * HnString */const HnString HnString::null;HnStringnew_HnString(void){ HnStringObj *_obj; HnString _ptr; _obj = new HnStringObj(); if(_obj->hasFailed()) return HnString::null; _ptr.assign(_obj); return _ptr;}HnStringnew_HnString(const char *ptr, int n){ HnStringObj *_obj; HnString _ptr; _obj = new HnStringObj(ptr, n); if(_obj->hasFailed()) return HnString::null; _ptr.assign(_obj); return _ptr;}HnStringnew_HnString(const HnString &string){ HnStringObj *_obj; HnString _ptr; _obj = new HnStringObj(string); if(_obj->hasFailed()) return HnString::null; _ptr.assign(_obj); return _ptr;}const char *HnString::chars(void) const{ return getObject()->chars();}const char &HnString::get(int i) const{ return getObject()->get(i);}const char &HnString::operator[](int i) const{ return getObject()->operator[](i);}intHnString::length(void) const{ return getObject()->length();}HnStringHnString::concat(const char *ptr, int n) const{ return getObject()->concat(ptr, n);}HnStringHnString::concat(const char *ptr) const{ return getObject()->concat(ptr);}HnStringHnString::concat(const HnString &string) const{ return getObject()->concat(string);}HnBoolHnString::equals(const HnString &ptr) const { if(isInvalid()) { if(ptr.isInvalid()) return HnTRUE; else return HnFALSE; } else { if(ptr.isInvalid()) return HnFALSE; else return getObject()->equals(ptr); }}HnBoolHnString::startsWith(const char *prefix, int n) const{ return getObject()->startsWith(prefix, n);}HnBoolHnString::startsWith(const char *prefix) const{ return getObject()->startsWith(prefix);}HnBoolHnString::startsWith(const HnString &string) const{ return getObject()->startsWith(string);}HnBoolHnString::endsWith(const char *suffix, int n) const{ return getObject()->endsWith(suffix, n);}HnBoolHnString::endsWith(const char *suffix) const{ return getObject()->endsWith(suffix);}HnBoolHnString::endsWith(const HnString &string) const{ return getObject()->endsWith(string);}intHnString::indexOf(int ch, int fromIndex) const{ return getObject()->indexOf(ch, fromIndex);}intHnString::indexOf(int ch) const{ return getObject()->indexOf(ch);}intHnString::lastIndexOf(int ch, int fromIndex) const{ return getObject()->lastIndexOf(ch, fromIndex);}intHnString::lastIndexOf(int ch) const{ return getObject()->lastIndexOf(ch);}HnStringHnString::substring(int beginIndex, int endIndex) const{ return getObject()->substring(beginIndex, endIndex);}HnStringHnString::substring(int beginIndex) const{ return getObject()->substring(beginIndex);}HnStringHnString::trim(void) const{ return getObject()->trim();}HnStringHnString::getString(FILE *fp){ return HnStringObj::getString(fp);}HnStringArrayHnString::sort(const HnStringArray &strings){ return HnStringObj::sort(strings);}voidHnString::escape(const char *ptr, HnString *string_return){ HnStringObj::escape(ptr, string_return);}voidHnString::unescape(const char *ptr, HnString *string_return){ HnStringObj::unescape(ptr, string_return);}voidHnString::pack(const HnStringArray &strings, HnString *string_return){ HnStringObj::pack(strings, string_return);}voidHnString::unpack(const char *ptr, HnStringArray *strings_return){ HnStringObj::unpack(ptr, strings_return);}voidHnString::pack(const char *array[], int length, HnString *string_return){ HnStringObj::pack(array, length, string_return);}voidHnString::pack(const char *ptr1, HnString *string_return){ HnStringObj::pack(ptr1, string_return);}voidHnString::unpack(const char *ptr, HnString *string1_return){ HnStringObj::unpack(ptr, string1_return);}voidHnString::pack(const char *ptr1, const char *ptr2, HnString *string_return){ HnStringObj::pack(ptr1, ptr2, string_return);}voidHnString::unpack(const char *ptr, HnString *string1_return, HnString *string2_return){ HnStringObj::unpack(ptr, string1_return, string2_return);}voidHnString::pack(const char *ptr1, const char *ptr2, const char *ptr3, HnString *string_return){ HnStringObj::pack(ptr1, ptr2, ptr3, string_return);}voidHnString::unpack(const char *ptr, HnString *string1_return, HnString *string2_return, HnString *string3_return){ HnStringObj::unpack(ptr, string1_return, string2_return, string3_return);}voidHnString::pack(const char *ptr1, const char *ptr2, const char *ptr3, const char *ptr4, HnString *string_return){ HnStringObj::pack(ptr1, ptr2, ptr3, ptr4, string_return);}voidHnString::unpack(const char *ptr, HnString *string1_return, HnString *string2_return, HnString *string3_return, HnString *string4_return){ HnStringObj::unpack(ptr, string1_return, string2_return, string3_return, string4_return);}/* * HnStringArrayObj */#include <stdlib.h>class HnStringArrayObj: public HnObject {private: HnString **array; int len; int size; static const int initialSize; void initialize(void) { array = NULL; len = 0; size = 0; } void dispose(void) { if(array != NULL) { int i; for(i=0; i<len; i++) delete array[i]; free(array); } array = NULL; len = 0; size = 0; } void ensureSize(int requiredSize);public: /* constructor and destructor */ HnStringArrayObj(void); HnStringArrayObj(const HnStringArray &ptr); ~HnStringArrayObj(void); /* clear, append, insert, and remove */ void clear(void); void append(const HnString &ptr); void append(const HnStringArray &ptr); void insert(const HnString &ptr, int index); HnString remove(int index); void set(const HnString &ptr, int index); void swap(int i, int j); /* length and get */ int length(void) const { return len; } HnString &get(int i) const; /* utilities */ HnBool equals(const HnStringArray &ptr) const; int indexOf(const HnString &ptr, int fromIndex) const; HnString toString(void) const;};const int HnStringArrayObj::initialSize = 4;static void *xrealloc(void *ptr, size_t size){ if(ptr == NULL) { if((ptr = malloc(size)) == NULL) HnSysError("malloc"); } else { if((ptr = realloc(ptr, size)) == NULL) HnSysError("realloc"); } return ptr;}voidHnStringArrayObj::ensureSize(int requiredSize){ int oldSize, newSize; if((oldSize = size) >= requiredSize) return; if((newSize = oldSize) == 0) newSize = initialSize; while(newSize < requiredSize) newSize *= 2; array = (HnString **)xrealloc(array, sizeof(HnString *) * newSize); size = newSize;}HnStringArrayObj::HnStringArrayObj(void){ initialize();}HnStringArrayObj::HnStringArrayObj(const HnStringArray &ptr){ initialize(); clear(); append(ptr);}HnStringArrayObj::~HnStringArrayObj(void){ dispose();}voidHnStringArrayObj::clear(void){ dispose();}voidHnStringArrayObj::append(const HnString &ptr){ ensureSize(len + 1); array[len] = new HnString(ptr); len ++;}voidHnStringArrayObj::append(const HnStringArray &ptr){ int i; ensureSize(len + ptr.length()); for(i=0; i<ptr.length(); i++) append(ptr[i]);}voidHnStringArrayObj::insert(const HnString &ptr, int index){ if(index < 0 || index > len) HnAbort("HnStringArrayObj::insert: " "index is out of bounds."); ensureSize(len + 1); memmove(array + index + 1, array + index, sizeof(HnString *) * (len - index)); array[index] = new HnString(ptr); len ++;}HnStringHnStringArrayObj::remove(int index){ HnString ptr = get(index); if(index < 0 || index >= len) HnAbort("HnStringArrayObj::remove: " "index is out of bounds."); delete array[index]; memmove(array + index, array + index + 1, sizeof(HnString *) * (len - index - 1)); len --; return ptr;}voidHnStringArrayObj::set(const HnString &ptr, int index){ if(index < 0 || index >= len) HnAbort("HnStringArrayObj::set: " "index is out of bounds."); delete array[index]; array[index] = new HnString(ptr);}voidHnStringArrayObj::swap(int i, int j){ if(i < 0 || i >= len || j < 0 || j >= len) HnAbort("HnStringArrayObj::swap: index is out of bounds."); HnString *ptr = array[i]; array[i] = array[j]; array[j] = ptr;}HnString &HnStringArrayObj::get(int i) const { if(i < 0 || i >= len) HnAbort("HnStringArrayObj::get: index is out of bounds."); return *array[i];}HnBoolHnStringArrayObj::equals(const HnStringArray &ptr) const { int i; if(len != ptr.length()) return HnFALSE; for(i=0; i<len; i++) { if(!array[i]->equals(ptr[i])) return HnFALSE; } return HnTRUE;}intHnStringArrayObj::indexOf(const HnString &ptr, int fromIndex) const{ int i; for(i=fromIndex; i<len; i++) { if(array[i]->equals(ptr)) return i; } return -1;}HnStringHnStringArrayObj::toString(void) const{ HnString string; string = "[ "; for(int i=0; i<len; i++) { if(i != 0) string += ", "; string += array[i]->toString(); } string += " ]"; return string;}/* * HnStringArray */const HnStringArray HnStringArray::null;HnStringArraynew_HnStringArray(void){ HnStringArray ptr; ptr.assign(new HnStringArrayObj()); return ptr;}HnStringArraynew_HnStringArray(const HnStringArray &value){ HnStringArray ptr; if(value.isInvalid()) ptr.assign(NULL); else ptr.assign(new HnStringArrayObj(value)); return ptr;}voidHnStringArray::clear(void){ getObject()->clear();}voidHnStringArray::append(const HnString &ptr){ getObject()->append(ptr);}voidHnStringArray::append(const HnStringArray &ptr){ getObject()->append(ptr);}voidHnStringArray::insert(const HnString &ptr, int index){ getObject()->insert(ptr, index);}HnStringHnStringArray::remove(int index){ return getObject()->remove(index);}voidHnStringArray::set(const HnString &ptr, int index){ getObject()->set(ptr, index);}voidHnStringArray::swap(int i, int j){ getObject()->swap(i, j);}intHnStringArray::length(void) const{ return getObject()->length();}HnString &HnStringArray::get(int i) const{ return getObject()->get(i);}HnBoolHnStringArray::equals(const HnStringArray &ptr) const{ return getObject()->equals(ptr);}intHnStringArray::indexOf(const HnString &ptr, int fromIndex) const{ return getObject()->indexOf(ptr, fromIndex);}HnStringHnStringArray::toString(void) const{ return getObject()->toString();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -