⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 hnstring.cc

📁 R 树
💻 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 + -