MSDN:Cstring类成员函数
https://msdn.microsoft.com/ja-jp/library/ms928965.aspx
Cstring转Char*和转Char数组
TCHAR* szDecimalMark = NULL;
szDecimalMark = new TCHAR[2];
_tcscpy_s(szDecimalMark, 2, _T("."));
CHAR* szDecimalMark = NULL;
USES_CONVERSION;
szDecimalMark = (CHAR*)(LPCSTR)T2A(_T("aaa"));
CHAR szchar[100];
strcpy(szchar,szDecimalMark );
Char*转CString
Cstring strTemp=szDecimalMark;
Cstring判断字符串
例:判断字符串是不是在1234567890.之后,不是就结束
strRet = strInput.SpanIncluding(_T("1234567890."));
if(strRet != strInput || strInput == _T("")){
return FALSE;
}
Cstring分割(按‘,’)
int nStar = 0,nPos = 0;
nPos = strConditionSerial.Find(',');
while(nPos != -1)
{
CString strSerial = strConditionSerial.Mid(nStar,nPos - nStar);
arrSerial.Add(strSerial);
nStar = nPos+1;
nPos = strConditionSerial.Find(',', nStar);
}
CString strLastSerial = strConditionSerial.Mid(nStar);
arrSerial.Add(strLastSerial);
判断Cstring只包含数字和字母(正则表达式判断)
#include <atlrx.h>
BOOL IsNumberOrChar(CString strInput)
{
CString strRegex = REGEX;
TCHAR* pCharReg = NULL;
TCHAR* pCharInput = NULL;
CAtlRegExp<CAtlRECharTraitsW> reRule;
CAtlREMatchContext<CAtlRECharTraitsW> mcRule;
const CAtlREMatchContext<>::RECHAR* szStart = 0;
const CAtlREMatchContext<>::RECHAR* szEnd = 0;
pCharReg = (TCHAR*)(LPCTSTR)strRegex;
REParseError status = reRule.Parse((const ATL::CAtlRegExp<CAtlRECharTraitsW>::RECHAR *)pCharReg);
if (status != REPARSE_ERROR_OK)
{
return FALSE;
}
pCharInput = (TCHAR*)(LPCTSTR)strInput;
if (!reRule.Match((const ATL::CAtlRegExp<CAtlRECharTraitsW>::RECHAR *)pCharInput, &mcRule))
{
return FALSE;
}
else
{
mcRule.GetMatch(0, &szStart, &szEnd);
ptrdiff_t nLength = szEnd - szStart;
CString strTemp(szStart, static_cast<int>(nLength));
if(strTemp.Compare(strInput) != 0)
{
return FALSE;
}
else
{
return TRUE;
}
}
}
CString完全判断和不区分大小写判断
CString str1;
Cstring str2;
if(str1 == str2) //区分字母大小写,必须完全一样
if(str1.CompareNoCase(str2)) //不区分字母大小写
CString转LPCSTR
fread(psz, sizeof(char), nLen, fp); //读文件内容
str.ReleaseBuffer(); //千万不能缺少