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

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

?? string.cpp

?? 小型的操作系統開發的原代碼
?? CPP
字號:
//***********************************************************************/
//    Author                    : Garry
//    Original Date             : May,28 2004
//    Module Name               : string.cpp
//    Module Funciton           : 
//                                This module and string.h countains the
//                                string operation functions.
//    Last modified Author      :
//    Last modified Date        :
//    Last modified Content     :
//                                1.
//                                2.
//    Lines number              :
//***********************************************************************/

#ifndef __HELLO_CHINA__
#include "..\INCLUDE\StdAfx.h"
#endif

#ifndef __STRING__
#include "string.h"
#endif

//
//String operation functions implementation.
//
BOOL StrCmp(LPSTR strSrc,LPSTR strDes)  //Compare the two strings,if equal,returns
                                        //TRUE,otherwise,returns FALSE.
{
	BOOL bResult = FALSE;
	WORD wIndex = 0x0000;

	if((NULL == strSrc) || (NULL == strDes))  //Parameter check.
		return FALSE;

	while(strSrc[wIndex] && strDes[wIndex] && (strSrc[wIndex] == strDes[wIndex]))
	{
		wIndex ++;
	}

	return strSrc[wIndex] == strDes[wIndex] ? TRUE : FALSE;
}

WORD StrLen(LPSTR strSrc)        //Get the string's length.
                                 //If the string's lenght is less than 
								 //MAX_STRING_LEN,returns the actual string's
								 //length,otherwise,returns MAX_STRING_LEN.
{
	WORD wStrLen = 0x00;

	if(NULL == strSrc)
		return -1;

	while(strSrc[wStrLen] && (MAX_STRING_LEN > wStrLen))
		wStrLen ++;

	return wStrLen;
}

BOOL Hex2Str(DWORD dwSrc,LPSTR strBuffer)  //Convert the hex format to string.
{
	BOOL bResult = FALSE;
	BYTE bt = 0x00;
	
	if(NULL == strBuffer)        //Parameter check.
		return bResult;

	for(WORD i = 0;i < 8;i ++)
	{
		bt = LOBYTE(LOWORD(dwSrc));
		bt = bt & 0x0f;     //Get the low 4 bits.
		if(bt < 10)              //Should to convert to number.
		{
			bt += '0';
			strBuffer[7 - i] = bt;
		}
		else                     //Should to convert to character.
		{
			bt -= 10;
			bt += 'A';
			strBuffer[7 - i] = bt;
		}
		dwSrc = dwSrc >> 0x04;   //Continue to process the next 4 bits.
	}

	strBuffer[8] = 0x00;         //Add the string's terminal sign.
	return TRUE;
}

//
//Convert 32 bit int number to string.
//
BOOL Int2Str(DWORD dwNum,LPSTR pszResult)
{
	BOOL bResult = FALSE;
	BYTE bt;
	BYTE index = 0;
	BYTE sw;

	if(NULL == pszResult)
		return bResult;

	do{
		bt =  BYTE(dwNum % 10);
		bt += '0';
		pszResult[index++] = bt;
		dwNum /= 10;
	}while(dwNum);
	pszResult[index] = 0;        //Set the terminal sign.
	
	for(bt = 0;bt < index/2;bt ++)  //Inverse the string.
	{
		sw = pszResult[bt];
		pszResult[bt] = pszResult[index - bt -1];
		pszResult[index - bt - 1] = sw;
	}

	bResult = TRUE;
	return bResult;
}

//
//Print a string at a new line.
//
VOID PrintLine(LPSTR pszStr)
{
	GotoHome();
	ChangeLine();
	PrintStr(pszStr);
}

//
//Copy the first string, to the second string buffer.
//
VOID StrCpy(LPSTR strSrc,LPSTR strDes)
{
	if((NULL == strSrc) || (NULL == strDes))  //Parameter check.
		return;

	DWORD dwIndex = 0;
	
	while(strSrc[dwIndex])
	{
		strDes[dwIndex] = strSrc[dwIndex];
		dwIndex ++;
	}
	strDes[dwIndex] = 0;
}

//
//Convert the string's low character to uper character.
//Such as,the input string is "abcdefg",then,the output
//string would be "ABCDEFG".
//

VOID ConvertToUper(LPSTR pszSource)
{
	BYTE     bt        = 'a' - 'A';
	DWORD    dwIndex   = 0x0000;
	DWORD    dwMaxLen  = MAX_STRING_LEN;

	if(NULL == pszSource)
		return;

	while(*pszSource)
	{
		if((*pszSource >= 'a') && ( *pszSource <= 'z'))
		{
			*pszSource -= bt;
		}
		pszSource ++;
		dwMaxLen --;
		if(0 == dwMaxLen)
			break;
	}

	return;
}

//
//Convert the string to hex number.
//If success,it returns TRUE,else,returns FALSE.
//
BOOL Str2Hex(LPSTR pszSrc,DWORD* pdwResult)
{
	BOOL     bResult  = FALSE;
	DWORD    dwResult = 0x00000000;
	if((NULL == pszSrc) || (NULL == pdwResult))  //Parameters check.
		return bResult;

	if(StrLen(pszSrc) > 8)                      //If the string's length is longer
		                                        //than the max hex number length.
		return bResult;

	ConvertToUper(pszSrc);                      //Convert to uper character.

	while(*pszSrc)
	{
		dwResult <<= 4;
		switch(*pszSrc)
		{
		case '0':
			dwResult += 0;
			break;
		case '1':
			dwResult += 1;
			break;
		case '2':
			dwResult += 2;
			break;
		case '3':
			dwResult += 3;
			break;
		case '4':
			dwResult += 4;
			break;
		case '5':
			dwResult += 5;
			break;
		case '6':
			dwResult += 6;
			break;
		case '7':
			dwResult += 7;
			break;
		case '8':
			dwResult += 8;
			break;
		case '9':
			dwResult += 9;
			break;
		case 'A':
			dwResult += 10;
			break;
		case 'B':
			dwResult += 11;
			break;
		case 'C':
			dwResult += 12;
			break;
		case 'D':
			dwResult += 13;
			break;
		case 'E':
			dwResult += 14;
			break;
		case 'F':
			dwResult += 15;
			break;
		default:
			bResult = FALSE;
			return bResult;
		}
		pszSrc ++;
	}

	bResult    = TRUE;
	*pdwResult = dwResult;

	return bResult;
}

//
//The implementation of FormString routine.
//This routine formats a string,and copy it into a buffer.
//It's function likes sprintf.
//
INT FormString(LPSTR lpszBuff,LPSTR lpszFmt,LPVOID* lppParam)
{
	DWORD        dwIndex        = 0L;
	LPSTR        lpszTmp        = NULL;
	BYTE         Buff[12];

	if((NULL == lpszBuff) || (NULL == lpszBuff))
		return -1;

	lpszTmp = lpszBuff;
	while(*lpszFmt)
	{
		if('%' == *lpszFmt)    //Should process.
		{
			lpszFmt ++;        //Skip '%'.
			switch(*lpszFmt)
			{
			case 'd':    //Convert an integer to string.
				Int2Str(*((DWORD*)lppParam[dwIndex ++]),Buff);  //Convert to string.
				StrCpy(Buff,lpszTmp);
				lpszTmp += StrLen(Buff);
				lpszFmt ++;
				break;
			case 'c':    //Convert a character to string.
				*lpszTmp ++= *((BYTE*)lppParam[dwIndex ++]);
				lpszFmt ++;
				break;
			case 's':    //Append a string.
				StrCpy((LPSTR)lppParam[dwIndex],lpszTmp);
				lpszTmp += StrLen((LPSTR)lppParam[dwIndex ++]);
				lpszFmt ++;
				break;
			case 'x':    //Convert an integer to string in hex.
			case 'X':
				Hex2Str(*((DWORD*)lppParam[dwIndex ++]),Buff);  //Convert to string.
				StrCpy(Buff,lpszTmp);
				lpszTmp += StrLen(Buff);
				lpszFmt ++;
				break;
			default:     //Unsupported now.
				break;
			}
		}
		*lpszTmp = *lpszFmt;
		if(0 == *lpszTmp)    //Reach end.
			break;
		lpszTmp ++;
		lpszFmt ++;
	}

	*lpszTmp = 0;    //End sign.
	return (lpszTmp - lpszBuff);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人成网站色在线观看| 手机精品视频在线观看| 亚洲成人在线免费| 成人一区二区三区| 欧美浪妇xxxx高跟鞋交| 中文字幕日韩av资源站| 国内精品自线一区二区三区视频| 在线观看三级视频欧美| 亚洲国产高清aⅴ视频| 奇米精品一区二区三区在线观看一 | 一区二区三区欧美亚洲| 狠狠色综合播放一区二区| 欧美丰满美乳xxx高潮www| 亚洲精品国产成人久久av盗摄| 国产一区二区视频在线| 精品日韩一区二区三区| 婷婷一区二区三区| 欧美日韩在线播| 亚洲激情自拍偷拍| 91在线小视频| 亚洲欧洲日产国码二区| 福利电影一区二区| 久久天天做天天爱综合色| 美女性感视频久久| 欧美一区二区三区电影| 婷婷亚洲久悠悠色悠在线播放| 欧美在线一区二区三区| 亚洲一区二区综合| 在线看国产一区二区| 日韩精品电影一区亚洲| 色久优优欧美色久优优| 亚洲三级在线看| 91在线无精精品入口| 亚洲你懂的在线视频| 在线亚洲欧美专区二区| 午夜私人影院久久久久| 欧美电影一区二区三区| 免费黄网站欧美| 26uuuu精品一区二区| 韩国欧美一区二区| 中文字幕欧美日韩一区| 北条麻妃国产九九精品视频| 亚洲免费观看视频| 欧美日韩国产高清一区| 免费成人小视频| 国产亚洲制服色| 99精品视频一区| 亚洲一区二区精品3399| 欧美一区二区精美| 国产成人在线色| 中文字幕制服丝袜一区二区三区| av中文一区二区三区| 亚洲最快最全在线视频| 91麻豆精品国产自产在线观看一区| 美女视频黄频大全不卡视频在线播放| 久久亚洲二区三区| av午夜精品一区二区三区| 亚洲电影在线播放| 精品国产污网站| 91视频.com| 蜜臀av一级做a爰片久久| 亚洲成av人片在线| 久久综合色天天久久综合图片| 成人国产精品视频| 日韩国产精品大片| 日本一区二区综合亚洲| 欧美日韩一区成人| 成人午夜免费av| 午夜精品aaa| 国产精品久久99| 91精品欧美福利在线观看| 国产成人小视频| 午夜av一区二区三区| 国产欧美日韩卡一| 欧美欧美午夜aⅴ在线观看| 国产麻豆欧美日韩一区| 亚洲一卡二卡三卡四卡| 国产午夜精品久久| 欧美日韩精品一区二区在线播放| 国产乱色国产精品免费视频| 亚洲在线视频网站| 国产欧美在线观看一区| 日韩一本二本av| 欧美性做爰猛烈叫床潮| 国产不卡一区视频| 蜜桃av一区二区在线观看| 亚洲精品日韩综合观看成人91| 国产夜色精品一区二区av| 日韩欧美一级精品久久| 欧美日精品一区视频| 91网上在线视频| 成人午夜免费视频| 国产麻豆视频一区二区| 九一久久久久久| 男女男精品视频网| 香蕉影视欧美成人| 亚洲欧美日韩一区二区三区在线观看| 欧美精品一区二区久久久| 欧美精品粉嫩高潮一区二区| 91最新地址在线播放| 成人激情小说乱人伦| 国产黑丝在线一区二区三区| 久久精品国产一区二区三区免费看| 一个色在线综合| 最近中文字幕一区二区三区| 国产午夜精品一区二区| 久久久久久一级片| 久久婷婷色综合| 精品日韩一区二区三区免费视频| 欧美一区二区三区精品| 日韩欧美的一区| 日韩精品一区二区三区视频播放 | 国产伦精品一区二区三区免费| 日韩不卡一区二区三区| 日韩成人午夜电影| 日韩va亚洲va欧美va久久| 日韩极品在线观看| 日韩成人午夜电影| 久久精品国产99国产精品| 精品制服美女丁香| 国产剧情在线观看一区二区| 国产精品一二三区| 99久久免费国产| 91国产免费看| 欧美高清视频不卡网| 日韩亚洲欧美综合| 久久久久久久久久久久久夜| 国产欧美精品一区| 亚洲免费视频中文字幕| 夜夜嗨av一区二区三区中文字幕 | 日韩精品中文字幕一区二区三区| 日韩一区二区三区av| 久久久一区二区三区捆绑**| 国产女人水真多18毛片18精品视频| 国产精品色眯眯| 一区二区三区四区在线| 日韩国产精品91| 成人网男人的天堂| 91成人免费网站| 欧美成人精品高清在线播放| 国产精品网站在线播放| 一区二区三区欧美日| 激情综合色播五月| 99精品桃花视频在线观看| 欧美性生活影院| 精品久久久久久最新网址| 国产精品免费看片| 青青草国产成人99久久| 国产高清成人在线| 欧美日韩三级视频| 国产精品少妇自拍| 日韩国产欧美在线播放| 成人免费视频免费观看| 884aa四虎影成人精品一区| 亚洲国产精品传媒在线观看| 亚洲成人av一区二区三区| 国产成人在线观看| 欧美日韩午夜影院| 国产精品网曝门| 奇米精品一区二区三区在线观看一| 成人免费高清在线观看| 日韩欧美在线观看一区二区三区| 久久先锋影音av鲁色资源网| 一区二区三区在线观看动漫| 国产一区二区福利视频| 欧美在线视频全部完| 中文字幕av不卡| 久久aⅴ国产欧美74aaa| 在线精品视频小说1| 欧美国产乱子伦| 久久狠狠亚洲综合| 欧美日韩国产高清一区二区三区 | 久久色.com| 五月综合激情网| 91免费国产在线| 欧美国产成人精品| 国产麻豆精品视频| 欧美一区二区福利在线| 亚洲综合另类小说| 色综合久久久久综合体| 国产三级精品视频| 精品一区二区在线观看| 6080国产精品一区二区| 亚洲免费高清视频在线| 懂色av中文一区二区三区| 精品国产伦一区二区三区观看体验| 亚洲图片自拍偷拍| 日本韩国精品在线| 亚洲免费观看视频| 色综合久久综合中文综合网| 国产精品久99| 一本一本久久a久久精品综合麻豆| 国产午夜精品一区二区三区四区| 国产在线播放一区| 精品第一国产综合精品aⅴ| 老司机免费视频一区二区三区| 日韩欧美二区三区| 韩国欧美国产1区| 久久精品日产第一区二区三区高清版| 精品一二线国产|