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

📄 tstring.cpp

📁 这是本人在工作中积累的VC++类库
💻 CPP
字号:
/************************************************************************
模快名:		moxu 公共类库
功能:		创建新线程
完成日期:	2007-10-20
作者:		许 培 Xu Pei(Email/MSN: peimoxu@163.com)

本代码可以自由使用,但因使用本代码造成的后果,本人不承担任何责任
************************************************************************/

#include "stdafx.h"
#include "TString.h"
#include "ScopeGuard.h"

#define iswspace(_c) ( iswctype(_c,_SPACE) )

namespace moxu
{
	TString Str::Format(LPCTSTR str, ...)
	{
		va_list args;
		va_start(args, str);
		int len = _vsctprintf(str, args) + 1;
		LPTSTR pStr = new TCHAR[len];

		if(pStr == NULL)
			throw _T("Alloc memory error");

		ScopeGuard sg = MakeArrayGuard(pStr);
		_vstprintf(pStr, str, args);
		va_end(args);
		return pStr;
	}

	TString& Str::ToUpper(TString& str)
	{
		_tcsupr((TCHAR*)str.c_str());
		return str;
	}

	TString& Str::ToLower(TString& str)
	{
		_tcslwr((TCHAR*)str.c_str());
		return str;
	}

	TString Str::TrimLeft(TString& str)
	{
		TCHAR* pStr = (TCHAR*)str.c_str();
		while(*pStr && _istspace(*pStr)) pStr++;
		return pStr;
	};

	TString& Str::TrimRigth(TString& str)
	{
		size_t size = str.size();
		while(size && _istspace(str[size-1])) str[--size] = 0;
		return str;
	};

	TString Str::Trim(TString& str)
	{
		return TrimLeft(TrimRigth(str));
	}

	std::string Str::TtoA(LPCTSTR tStr)
	{
	#ifdef _UNICODE
		DWORD	mappingFlag = WC_COMPOSITECHECK | WC_SEPCHARS;
		int strSize = WideCharToMultiByte(CP_ACP, mappingFlag, tStr, -1, NULL, 0, NULL, NULL);
		char *ch = new char[strSize];
		ScopeGuard sg = MakeArrayGuard(ch);
		WideCharToMultiByte(CP_ACP, mappingFlag, tStr, -1, ch, strSize, NULL, NULL);
		return ch;
	#else
		return tStr;
	#endif
	}

	TString Str::AtoT(LPCSTR str)
	{
	#ifdef _UNICODE
		DWORD	mappingFlag = MB_PRECOMPOSED;
		int strSize = MultiByteToWideChar(CP_THREAD_ACP, mappingFlag, str, -1, NULL, 0);
		TCHAR* ch = new TCHAR[strSize];
		ScopeGuard sg = MakeArrayGuard(ch);
		MultiByteToWideChar(CP_THREAD_ACP, mappingFlag, str, -1, ch, strSize);
		std::wstring tStr(ch);
		return ch;
	#else
		return str;
	#endif
	}

}

⌨️ 快捷键说明

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