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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? str.cc

?? 功能較全面的反匯編器:反匯編器ht-2.0.15.tar.gz
?? CC
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
/* *	HT Editor *	str.cc * *	Copyright (C) 2002 Stefan Weyergraf (stefan@weyergraf.de) *	Copyright (C) 2002, 2003 Sebastian Biallas (sb@biallas.net) * *	This program is free software; you can redistribute it and/or modify *	it under the terms of the GNU General Public License version 2 as *	published by the Free Software Foundation. * *	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, write to the Free Software *	Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */#include <new>#include <cctype>#include <cstdlib>#include <cstring>#include "except.h"#include "htdebug.h"#include "snprintf.h"#include "str.h"#include "stream.h"#include "strtools.h"#include "tools.h"#ifdef HAVE_HT_OBJECTS#include "atom.h"#endifextern "C" {#include "regex.h"}/* *	CLASS String *//** *	creates empty string */String::String(){	mContent = NULL;	realloc(0);}/** *	create string from char * */String::String(const char *s){	mContent = NULL;	assign(s);}/** *	copy constructor */String::String(const String *s){	mContent = NULL;	assign(s);}/** *	copy constructor */String::String(const String &s){	assert(&s != this);	mContent = NULL;	assign(s);}/** *   creates string from array |s| size |aLength| */String::String(const byte *s, int aLength){	mContent = NULL;	assign(s, aLength);}/** *   creates string with |count| times |c| */String::String(char c, int count){	mContent = NULL;	assign(c, count);}String::~String(){	free(mContent);}/** *	(re-)assigns string to |s| */void String::assign(const String *s){	realloc(s->mLength);	memcpy(mContent, s->mContent, mLength);}/** *	(re-)assigns string to |s| */void String::assign(const String &s){	realloc(s.mLength);	memcpy(mContent, s.mContent, mLength);}/** *	(re-)assigns string to char * |s| */void String::assign(const char *s){	int slen = s ? strlen(s) : 0;	realloc(slen);	memcpy(mContent, s, mLength);}/** *	(re-)assigns string to array |s| length |aLength| */void String::assign(const byte *s, int aLength){	realloc(aLength);	memcpy(mContent, s, mLength);}/** *	(re-)assigns string to |count| times |c| */void String::assign(char c, int count){	realloc(count);	memset(mContent, c, count);}/** *	(re-)assigns string via ht_snprintf */void String::assignFormat(const char *s, ...){	char buf[1024];	va_list vargs;	va_start(vargs, s);	ht_vsnprintf(buf, sizeof buf, s, vargs);	va_end(vargs);	assign(buf);}/** *   appends |s| to the end */void String::append(const String &s){	if (s.mLength) {		int oldLength = mLength;		realloc(mLength + s.mLength);		memcpy(&mContent[oldLength], s.mContent, s.mLength);	}}void String::append(const char *s){	if (s && *s) {		int oldLength = mLength;		int slen = strlen(s);		realloc(mLength + slen);		memcpy(&mContent[oldLength], s, slen);	}}void String::appendChar(char c){	realloc(mLength+1);	mContent[mLength-1] = c;}void String::append(const byte *s, int aLength){	if (aLength <= 0) return;	int oldLength = mLength;	realloc(mLength + aLength);	memcpy(&mContent[oldLength], s, aLength);}/** *	(re-)append to string via ht_snprintf */void String::appendFormat(const char *s, ...){	char buf[1024];	va_list vargs;	va_start(vargs, s);	ht_vsnprintf(buf, sizeof buf, s, vargs);	va_end(vargs);	append(buf);}/** *   prepends |s| to the front */void String::prepend(const String &s){	if (s.mLength) {		int oldLength = mLength;		realloc(mLength + s.mLength);		memmove(&mContent[s.mLength], &mContent[0], oldLength);		memcpy(&mContent[0], s.mContent, s.mLength);	}}/** *	Empties string. */void String::clear(){	realloc(0);}String *String::clone() const{	return new String(mContent, mLength);}/** *   compares to characters. *	used in compareTo() and findXXX() (and therefore replace()) *	@returns 0 for equality, negative number if |c1<c2| and positive number if |c1>c2| */int String::compareChar(char c1, char c2) const{	if (c1 < c2) return -1;	if (c1 > c2) return 1;	return 0;}int String::compare(const char *s) const{	if (!mLength) {		return (s) ? -1: 0;	}	if (!s) {		return 1;	}	int l = mLength;	for (int i=0; i < l; i++) {		if (!*s) return 1;		int r = compareChar(mContent[i], s[i]);		if (r) return r;	}	if (s[l]) return -1;	return 0;}int String::compare(const String &s) const{	if (!mContent) {		return (s.mContent) ? -1: 0;	}	if (!s.mContent) {		return 1;	}	int l = MIN(mLength, s.mLength);	for (int i=0; i<l; i++) {		int r = compareChar(mContent[i], s.mContent[i]);		if (r) return r;	}	if (mLength < s.mLength) return -1;	if (mLength == s.mLength) return 0;	return 1;}/* *	like compare(s) but considers a maximum of |aMax| characters */int String::compare(const String &s, int aMax) const{	if (aMax <= 0) return 0;	if (!mContent) {		return (s.mContent) ? -1: 0;	}	if (!s.mContent) {		return 1;	}	int l = MIN(mLength, s.mLength);	l = MIN(l, aMax);	int i;	for (i=0; i<l; i++) {		int r = compareChar(mContent[i], s.mContent[i]);		if (r) return r;	}	if (i == aMax) return 0;	if (mLength < s.mLength) return -1;	if (mLength == s.mLength) return 0;	return 1;}int String::compareTo(const Object *o) const{	assert(getObjectID() == o->getObjectID());	return compare(*((String *)o));}uint String::countChar(char c) const{	int i = 0;	uint n = 0;	while (i < mLength) {		if (compareChar(mContent[i], c) == 0) n++;		i++;	}	return n;}/** *	Crops the string to contain a maximum of |aNewLength| characters. */void String::crop(int aNewLength){	if ((aNewLength >= 0) && (aNewLength < mLength)) realloc(aNewLength);}/** *	Deletes |aLength| characters at |pos| */void String::del(int pos, int aLength){	if (pos < 0) {		aLength += pos;		pos = 0;	}	if (aLength <= 0 || pos >= mLength) return;	if (pos+aLength >= mLength) aLength = mLength-pos;	if (!aLength) return;	if (pos + aLength < mLength) {		memmove(&mContent[pos], &mContent[pos+aLength], mLength-aLength-pos);	}	realloc(mLength-aLength);}/** *	Escapes certains characters in a c-style manner (all characters < 0x20). *	@param aSpecialChars characters that need a \ *	@param bit7 hex encode (\x..) characters >127 */void String::escape(const char *aSpecialChars, bool bit7){	if (!mLength) return;	String copy(this);	realloc(mLength*4);	realloc(escape_special((char*)mContent, mLength+1, copy.mContent,					   copy.mLength, aSpecialChars, bit7));}/** *   Search forwards for |c| in string *	@param c character to search for *	@param start first character position to look for *	@returns position of character or number < 0 if not found */int String::findCharFwd(char c, int start, int ith_match) const{	if (!mLength) return -1;	if (start >= mLength) return -1;	if (start < 0) start = 0;	for (int i=start; i < mLength; i++) {		if (compareChar(mContent[i], c) == 0) {			if (ith_match <= 1) return i;			ith_match--;		}	}	return -1;}/** *   Search backwards for |c| in string *	@param c character to search for *	@param start first character position to look for *	@returns position of character or number < 0 if not found */int String::findCharBwd(char c, int start, int ith_match) const{	if (!mLength) return -1;	if (start >= mLength) return -1;	if (start < 0) start = mLength-1;	for (int i=start; i>=0; i--) {

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区在线播放| 亚洲成人av免费| 天涯成人国产亚洲精品一区av| 中文字幕在线一区二区三区| 欧美精品v日韩精品v韩国精品v| 99re视频精品| 精品国产髙清在线看国产毛片| 国产丝袜欧美中文另类| 亚洲一区免费观看| 美国三级日本三级久久99| 国产成+人+日韩+欧美+亚洲| 不卡高清视频专区| 欧美午夜精品一区二区三区| 国产午夜精品理论片a级大结局 | 日韩国产欧美在线播放| 精品一区二区影视| 成人激情小说乱人伦| 欧美三级在线视频| 一区二区理论电影在线观看| 国产激情视频一区二区三区欧美| 欧美性一级生活| 一区二区在线观看av| 国产精品99久久久久久久女警 | 国产一区二区三区黄视频| 欧美性videosxxxxx| 亚洲一区在线观看免费 | 国产欧美一区二区三区网站| 97精品久久久久中文字幕 | 亚洲激情一二三区| 制服丝袜中文字幕一区| 久久久久99精品国产片| 亚洲精品国产精品乱码不99| 日韩不卡一二三区| 成人午夜激情片| 国产丝袜欧美中文另类| 国产91精品一区二区| 久久久久久99久久久精品网站| 韩国av一区二区三区| 精品第一国产综合精品aⅴ| 国产综合色在线| 中文字幕国产一区| 一本久道中文字幕精品亚洲嫩| 亚洲色欲色欲www在线观看| 欧美日免费三级在线| 日本麻豆一区二区三区视频| 26uuu欧美| 欧美午夜精品一区| 国产露脸91国语对白| 国产精品成人午夜| 欧美刺激脚交jootjob| 国产成人精品综合在线观看| 亚洲精选在线视频| 久久丝袜美腿综合| 欧美丰满美乳xxx高潮www| 国产乱子轮精品视频| 天天色图综合网| 国产精品日日摸夜夜摸av| 欧美日韩1234| 一本色道久久综合亚洲精品按摩 | 亚洲小说欧美激情另类| 久久只精品国产| 91精品久久久久久蜜臀| 成人手机电影网| 狠狠色丁香九九婷婷综合五月| 亚洲国产一区二区在线播放| 亚洲欧洲99久久| 久久久国产精华| 国产偷国产偷精品高清尤物| 日韩女优av电影| 欧美精品一区二区三区蜜桃| 日韩三区在线观看| 91精品国产色综合久久ai换脸| 在线视频你懂得一区二区三区| 99久久伊人久久99| 91日韩一区二区三区| 色美美综合视频| 6080日韩午夜伦伦午夜伦| 欧美中文字幕亚洲一区二区va在线| 色综合久久中文综合久久牛| 91免费看`日韩一区二区| 欧美性大战久久久| 日韩欧美你懂的| 中文字幕一区二区三区精华液 | 老色鬼精品视频在线观看播放| 另类小说色综合网站| 国产福利电影一区二区三区| 成人h动漫精品一区二| 欧美日韩亚洲另类| 国产日韩精品一区| 蜜臀精品一区二区三区在线观看| 久草中文综合在线| 欧美日本一区二区在线观看| 久久综合九色综合久久久精品综合| 欧美激情在线一区二区三区| 日本亚洲最大的色成网站www| 国产精品自拍网站| 日韩欧美电影在线| 一区二区三区在线视频观看58| 激情都市一区二区| 日韩亚洲国产中文字幕欧美| 亚洲色图视频网| 丁香婷婷综合激情五月色| 6080yy午夜一二三区久久| 一区二区成人在线视频| 风间由美中文字幕在线看视频国产欧美| 欧美在线观看禁18| 一区二区久久久久久| 色婷婷激情一区二区三区| 亚洲欧洲制服丝袜| 97国产一区二区| 亚洲一区二区影院| 欧美日韩久久久一区| 日本91福利区| 欧美成人在线直播| 春色校园综合激情亚洲| 国产精品传媒在线| 欧美三级蜜桃2在线观看| 视频一区二区国产| 久久精品一区二区| av电影在线观看一区| 《视频一区视频二区| 欧美视频中文字幕| 久久超碰97人人做人人爱| 国产精品久久久久久久岛一牛影视 | 美日韩一区二区三区| 中文字幕一区二区三区四区不卡 | 美女mm1313爽爽久久久蜜臀| 一区二区国产视频| 亚洲激情自拍视频| 亚洲色图制服丝袜| 夜夜揉揉日日人人青青一国产精品| 日韩一区日韩二区| 亚洲一级电影视频| 午夜视频久久久久久| 国产永久精品大片wwwapp| 国产一区二区视频在线| aaa国产一区| 欧美日韩一区三区| 91精品国产91久久久久久一区二区| 日本韩国欧美在线| 51精品秘密在线观看| 欧美成人女星排名| 久久精品人人做人人综合 | 99精品欧美一区| 91免费精品国自产拍在线不卡| 色视频成人在线观看免| 在线精品视频免费观看| 欧美精品久久99久久在免费线 | 国产一区二区在线看| 成人黄色小视频在线观看| 91在线小视频| 日韩免费福利电影在线观看| 国产日产亚洲精品系列| 亚洲18色成人| 成人一道本在线| 欧美老女人在线| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 色丁香久综合在线久综合在线观看| 欧美日韩成人一区| 日韩一区二区在线免费观看| 国产色综合一区| 免费观看在线色综合| 欧美色综合天天久久综合精品| 久久亚洲二区三区| 久久国产日韩欧美精品| 欧美性感一区二区三区| 亚洲精品视频一区二区| 成人18视频日本| 国产精品国产三级国产普通话99| 人人狠狠综合久久亚洲| 99视频超级精品| 欧美国产精品一区| 国产成人av资源| 久久久精品免费网站| 国产精品18久久久久久久久| 欧美一区二区三区在线观看| 天天综合网 天天综合色| 欧美日韩在线直播| 日韩高清一级片| 欧美videos中文字幕| 成人一区二区三区在线观看| 中文字幕一区二| 色诱视频网站一区| 丝袜美腿一区二区三区| 精品国产乱码久久久久久蜜臀 | 色婷婷国产精品| 亚洲国产视频一区二区| 欧美刺激脚交jootjob| 国产在线视频一区二区三区| 国产精品网曝门| 欧洲一区在线电影| 日本伊人色综合网| 一色桃子久久精品亚洲| 91精品国产品国语在线不卡| 成人免费毛片app| 极品美女销魂一区二区三区| 亚洲永久免费视频| 亚洲一区二区三区激情| 亚洲免费av在线| 亚洲一区二区三区四区中文字幕|