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

📄 cpstringutils.cpp

📁 开源的ssl算法openssl,版本0.9.8H
💻 CPP
📖 第 1 页 / 共 4 页
字号:
			ConcatPStrToCStr(theStr255,tempString,sizeof(tempString));						CopyCStrToPStr(tempString,theStr255,sizeof(theStr255));		}	}	ConcatPStrToPStr(theStr255,thePStr,maxPStrLength);}void CopyCStrAndConcatLongIntToCStr(const char *theSrcCStr,const long theNum,char *theDstCStr,const int maxDstStrLength){	CopyCStrToCStr(theSrcCStr,theDstCStr,maxDstStrLength);		ConcatLongIntToCStr(theNum,theDstCStr,maxDstStrLength);}void CopyLongIntToCStr(const long theNum,char *theCStr,const int maxCStrLength,const int numDigits){Str255 		theStr255;	NumToString(theNum,theStr255);	if (numDigits > 0)	{	int 	charsToInsert;					charsToInsert = numDigits - PStrLength(theStr255);				if (charsToInsert > 0)		{		char	tempString[256];						CopyCStrToCStr("",tempString,sizeof(tempString));						for (;charsToInsert > 0;charsToInsert--)			{				ConcatCStrToCStr("0",tempString,sizeof(tempString));			}						ConcatPStrToCStr(theStr255,tempString,sizeof(tempString));						CopyCStrToPStr(tempString,theStr255,sizeof(theStr255));		}	}	CopyPStrToCStr(theStr255,theCStr,maxCStrLength);}void CopyUnsignedLongIntToCStr(const unsigned long theNum,char *theCStr,const int maxCStrLength){char			tempString[256];int				srcCharIndex,dstCharIndex;unsigned long	tempNum,quotient,remainder;		if (theNum == 0)	{		CopyCStrToCStr("0",theCStr,maxCStrLength);	}		else	{		srcCharIndex = 0;				tempNum = theNum;				for (;;)		{			if (srcCharIndex >= sizeof(tempString) - 1 || tempNum == 0)			{				for (dstCharIndex = 0;;)				{					if (dstCharIndex >= maxCStrLength - 1 || srcCharIndex <= 0)					{						theCStr[dstCharIndex] = 0;												break;					}										theCStr[dstCharIndex++] = tempString[--srcCharIndex];				}								break;			}						quotient = tempNum / 10;						remainder = tempNum - (quotient * 10);						tempString[srcCharIndex] = '0' + remainder;						srcCharIndex++;						tempNum = quotient;		}	}}void CopyLongIntToPStr(const long theNum,unsigned char *thePStr,const int maxPStrLength,const int numDigits){char	tempString[256];	CopyLongIntToCStr(theNum,tempString,sizeof(tempString),numDigits);		CopyCStrToPStr(tempString,thePStr,maxPStrLength);}OSErr CopyLongIntToNewHandle(const long inTheLongInt,Handle *theHandle){OSErr		errCode = noErr;char		tempString[32];			CopyLongIntToCStr(inTheLongInt,tempString,sizeof(tempString));		errCode = CopyCStrToNewHandle(tempString,theHandle);	return(errCode);}OSErr CopyLongIntToExistingHandle(const long inTheLongInt,Handle theHandle){OSErr		errCode = noErr;char		tempString[32];			CopyLongIntToCStr(inTheLongInt,tempString,sizeof(tempString));		errCode = CopyCStrToExistingHandle(tempString,theHandle);	return(errCode);}OSErr CopyCStrToExistingHandle(const char *theCString,Handle theHandle){OSErr	errCode = noErr;long	stringLength;		if (theCString == nil)	{		SetErrorMessageAndBail(("CopyCStrToExistingHandle: Bad parameter, theCString == nil"));	}	if (theHandle == nil)	{		SetErrorMessageAndBail(("CopyCStrToExistingHandle: Bad parameter, theHandle == nil"));	}	if (*theHandle == nil)	{		SetErrorMessageAndBail(("CopyCStrToExistingHandle: Bad parameter, *theHandle == nil"));	}	stringLength = CStrLength(theCString) + 1;		SetHandleSize(theHandle,stringLength);		if (GetHandleSize(theHandle) < stringLength)	{		SetErrorMessageAndLongIntAndBail("CopyCStrToExistingHandle: Can't set Handle size, MemError() = ",MemError());	}			::BlockMove(theCString,*theHandle,stringLength);	EXITPOINT:		return(errCode);}OSErr CopyCStrToNewHandle(const char *theCString,Handle *theHandle){OSErr	errCode = noErr;long	stringLength;		if (theCString == nil)	{		SetErrorMessageAndBail(("CopyCStrToNewHandle: Bad parameter, theCString == nil"));	}	if (theHandle == nil)	{		SetErrorMessageAndBail(("CopyCStrToNewHandle: Bad parameter, theHandle == nil"));	}	stringLength = CStrLength(theCString) + 1;		*theHandle = NewHandle(stringLength);		if (*theHandle == nil)	{		SetErrorMessageAndLongIntAndBail("CopyCStrToNewHandle: Can't allocate Handle, MemError() = ",MemError());	}			::BlockMove(theCString,**theHandle,stringLength);	EXITPOINT:		return(errCode);}OSErr CopyPStrToNewHandle(const unsigned char *thePString,Handle *theHandle){OSErr	errCode = noErr;long	stringLength;		if (thePString == nil)	{		SetErrorMessageAndBail(("CopyPStrToNewHandle: Bad parameter, thePString == nil"));	}	if (theHandle == nil)	{		SetErrorMessageAndBail(("CopyPStrToNewHandle: Bad parameter, theHandle == nil"));	}	stringLength = PStrLength(thePString) + 1;		*theHandle = NewHandle(stringLength);		if (*theHandle == nil)	{		SetErrorMessageAndLongIntAndBail("CopyPStrToNewHandle: Can't allocate Handle, MemError() = ",MemError());	}			if (stringLength > 1)	{		BlockMove(thePString + 1,**theHandle,stringLength - 1);	}		(**theHandle)[stringLength - 1] = 0;	EXITPOINT:		return(errCode);}OSErr AppendPStrToHandle(const unsigned char *thePString,Handle theHandle,long *currentLength){OSErr		errCode = noErr;char		tempString[256];		CopyPStrToCStr(thePString,tempString,sizeof(tempString));		errCode = AppendCStrToHandle(tempString,theHandle,currentLength);	EXITPOINT:		return(errCode);}OSErr AppendCStrToHandle(const char *theCString,Handle theHandle,long *currentLength,long *maxLength){OSErr		errCode = noErr;long		handleMaxLength,handleCurrentLength,stringLength,byteCount;	if (theCString == nil)	{		SetErrorMessageAndBail(("AppendCStrToHandle: Bad parameter, theCString == nil"));	}	if (theHandle == nil)	{		SetErrorMessageAndBail(("AppendCStrToHandle: Bad parameter, theHandle == nil"));	}			if (maxLength != nil)	{		handleMaxLength = *maxLength;	}		else	{		handleMaxLength = GetHandleSize(theHandle);	}			if (currentLength != nil && *currentLength >= 0)	{		handleCurrentLength = *currentLength;	}		else	{		handleCurrentLength = CStrLength(*theHandle);	}			stringLength = CStrLength(theCString);		byteCount = handleCurrentLength + stringLength + 1;		if (byteCount > handleMaxLength)	{		SetHandleSize(theHandle,handleCurrentLength + stringLength + 1);				if (maxLength != nil)		{			*maxLength = GetHandleSize(theHandle);						handleMaxLength = *maxLength;		}				else		{			handleMaxLength = GetHandleSize(theHandle);		}		if (byteCount > handleMaxLength)		{			SetErrorMessageAndLongIntAndBail("AppendCStrToHandle: Can't increase Handle allocation, MemError() = ",MemError());		}	}			BlockMove(theCString,*theHandle + handleCurrentLength,stringLength + 1);			if (currentLength != nil)	{		*currentLength += stringLength;	}	errCode = noErr;		EXITPOINT:	return(errCode);}OSErr AppendCharsToHandle(const char *theChars,const int numChars,Handle theHandle,long *currentLength,long *maxLength){OSErr		errCode = noErr;long		handleMaxLength,handleCurrentLength,byteCount;	if (theChars == nil)	{		SetErrorMessageAndBail(("AppendCharsToHandle: Bad parameter, theChars == nil"));	}	if (theHandle == nil)	{		SetErrorMessageAndBail(("AppendCharsToHandle: Bad parameter, theHandle == nil"));	}			if (maxLength != nil)	{		handleMaxLength = *maxLength;	}		else	{		handleMaxLength = GetHandleSize(theHandle);	}			if (currentLength != nil && *currentLength >= 0)	{		handleCurrentLength = *currentLength;	}		else	{		handleCurrentLength = CStrLength(*theHandle);	}			byteCount = handleCurrentLength + numChars + 1;		if (byteCount > handleMaxLength)	{		SetHandleSize(theHandle,handleCurrentLength + numChars + 1);				if (maxLength != nil)		{			*maxLength = GetHandleSize(theHandle);						handleMaxLength = *maxLength;		}				else		{			handleMaxLength = GetHandleSize(theHandle);		}		if (byteCount > handleMaxLength)		{			SetErrorMessageAndLongIntAndBail("AppendCharsToHandle: Can't increase Handle allocation, MemError() = ",MemError());		}	}			BlockMove(theChars,*theHandle + handleCurrentLength,numChars);		(*theHandle)[handleCurrentLength + numChars] = '\0';		if (currentLength != nil)	{		*currentLength += numChars;	}	errCode = noErr;		EXITPOINT:	return(errCode);}OSErr AppendLongIntToHandle(const long inTheLongInt,Handle theHandle,long *currentLength){OSErr		errCode = noErr;char		tempString[32];			CopyLongIntToCStr(inTheLongInt,tempString,sizeof(tempString));		errCode = AppendCStrToHandle(tempString,theHandle,currentLength);	return(errCode);}long CStrLength(const char *theCString){long	cStrLength = 0;		if (theCString != nil)	{		for (cStrLength = 0;theCString[cStrLength] != 0;cStrLength++)		{				}	}			return(cStrLength);}long PStrLength(const unsigned char *thePString){long	pStrLength = 0;		if (thePString != nil)	{		pStrLength = thePString[0];	}			return(pStrLength);}void ZeroMem(void *theMemPtr,const unsigned long numBytes){unsigned char	*theBytePtr;unsigned long	*theLongPtr;unsigned long	numSingleBytes;unsigned long	theNumBytes;		theNumBytes = numBytes;		if (theMemPtr != nil && theNumBytes > 0)	{		theBytePtr = (unsigned char	*) theMemPtr;				numSingleBytes = (unsigned long) theBytePtr & 0x0003;				while (numSingleBytes > 0)		{			*theBytePtr++ = 0;						theNumBytes--;			numSingleBytes--;		}				theLongPtr = (unsigned long	*) theBytePtr;				while (theNumBytes >= 4)		{			*theLongPtr++ = 0;						theNumBytes -= 4;		}						theBytePtr = (unsigned char	*) theLongPtr;				while (theNumBytes > 0)		{			*theBytePtr++ = 0;						theNumBytes--;		}	}}char *FindCharInCStr(const char theChar,const char *theCString){char	*theStringSearchPtr;		theStringSearchPtr = (char	*) theCString;		if (theStringSearchPtr != nil)	{		while (*theStringSearchPtr != '\0' && *theStringSearchPtr != theChar)		{			theStringSearchPtr++;		}				if (*theStringSearchPtr == '\0')		{			theStringSearchPtr = nil;		}	}		return(theStringSearchPtr);}long FindCharOffsetInCStr(const char theChar,const char *theCString,const Boolean inIgnoreCase){long	theOffset = -1;	if (theCString != nil)	{		theOffset = 0;				if (inIgnoreCase)		{		char	searchChar = theChar;					if (searchChar >= 'a' && searchChar <= 'z')			{				searchChar = searchChar - 'a' + 'A';			}									while (*theCString != 0)			{			char	currentChar = *theCString;							if (currentChar >= 'a' && currentChar <= 'z')				{					currentChar = currentChar - 'a' + 'A';				}							if (currentChar == searchChar)				{					break;				}								theCString++;				theOffset++;			}		}				else		{			while (*theCString != 0 && *theCString != theChar)			{				theCString++;				theOffset++;			}		}				if (*theCString == 0)		{			theOffset = -1;		}	}		return(theOffset);}long FindCStrOffsetInCStr(const char *theCSubstring,const char *theCString,const Boolean inIgnoreCase){long	theOffset = -1;	if (theCSubstring != nil && theCString != nil)	{		for (theOffset = 0;;theOffset++)		{			if (theCString[theOffset] == 0)			{				theOffset = -1;								goto EXITPOINT;			}									for (const char	*tempSubstringPtr = theCSubstring,*tempCStringPtr = theCString + theOffset;;tempSubstringPtr++,tempCStringPtr++)			{				if (*tempSubstringPtr == 0)				{					goto EXITPOINT;				}								else if (*tempCStringPtr == 0)				{					break;				}						char	searchChar = *tempSubstringPtr;			char	currentChar = *tempCStringPtr;							if (inIgnoreCase && searchChar >= 'a' && searchChar <= 'z')				{					searchChar = searchChar - 'a' + 'A';

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -