C++常用数据结构-CString

时间:2024-01-02 12:41:53

CString类
Str.format(_T(“%d”),number)
例子: str.Format(_T("%d"),number);
%c 单个字符(char)
%d 十进制整数(int)
%ld 十进制整数(long)
%f 十进制浮点数(float)
%lf 十进制浮点数(double)
%o 八进制数
%s 字符串
%u 无符号十进制数
%x 十六进制数
%2f 输出两位数;包括小数点也算一位
%.2f 保留小数点后两位数
str.GetLength() 获取长度 字符个数
##########################################################################################
CString Left(int nCount) const;
从左取字串
例:csStr="abcdef";
cout<<csStr.Left(3); //abc
//当nCount等于0时,返回空。
//当nCount为负数时,返回空。
//当nCount大于对象长度时,返回值与对象相同。
##########################################################################################
CString Right( int nCount ) const;
从右取字串
例:csStr="abcdef";
; cout<<csStr.Right(3) //def
//当nCount等于0时,返回空。
//当nCount为负数时,返回空。
//当nCount大于对象长度时,返回值与对象相同。
##########################################################################################
CString Mid( int nFirst ) const;
CString Mid( int nFirst, int nCount ) const;
从中间开始取字串
例:csStr="abcdef";
cout<<csStr.Mid(2); //cdef
csStr="abcdef";
cout<<csStr.Mid(2,3); //cde
//当nFirst为0和为负数时,从第一个字符开始取。
//当nFirst等于对象末尾时,返回空字串。
//当nFirst超出对象末尾时,会发生无法预料的结果。
//当nCount超出对象末尾时,返回从nFirst开始一直到对象末尾的字串
//当nCount为0和为负数时,返回空字串。
##########################################################################################
int Find( TCHAR ch ) const;
int Find( LPCTSTR lpszSub ) const;
int Find( TCHAR ch, int nStart ) const;
int Find( LPCTSTR pstr, int nStart ) const;
查找字串,nStart为开始查找的位置。未找到匹配时返回-1,否则返回字串的开始位置
例:csStr="abcdef";
cout<<csStr.Find('b'); //1
cout<<csStr.Find("de"); //3
cout<<csStr.Find('b',3); //-1
cout<<csStr.Find('b',0); //1
cout<<csStr.Find("de",4); //-1
cout<<csStr.Find("de",0); //3
//当nStart超出对象末尾时,返回-1。
//当nStart为负数时,返回-1。
#########################################################################################
替换某个或者某几个字符
strTemp1.Replace(L"板子块数", L""); //将【板子块数】这四个字删掉
strTemp1.ReverseFind(_T("_")); //查找最后一个 _ 的位置,
strName.GetLength() //获取字符串长度
------------------------------------------------------------------------------------------
类型转换
int nIndex;
CString str;
1:字符串转整型:nEdge = _wtoi(strEdge);

2、整型转字符串:str.format("%d",nIndex);

3、字符串转浮点型
CString str="1.2";
float f;
f = atof(str);

4、字符串转整形
CString str = "123";
int i;
i = atoi(str);

5、CString 转 BSTR
CComBSTR MyBSTR = CComBSTR(fileName);
6、BSTR 转CString
CString str = CString(bstrName);
7、CComBSTR m_bstrCurPath
CString str = m_bstrCurPath.m_str
------------------------------------------------------------------------------------------
字符串数据拆分【SplitString】
bool CFoodSafety::SplitString(CString strCombo,CString strSeparator,vector<CString>& vecStrGroup)
{
vecStrGroup.clear();
if(strCombo.GetLength()==0)
{
return false;
}
while(1)
{
int nFind=strCombo.Find(strSeparator);
if(nFind==-1)//已经是最后一个串了
{
vecStrGroup.push_back(strCombo);
return true;
}
vecStrGroup.push_back(strCombo.Left(nFind));
int nLen=strCombo.GetLength();
strCombo=strCombo.Right(nLen-nFind-strSeparator.GetLength());
}
return true;
}

使用:
CString strName = _T("A_B_C_E_H");
vector<CString> vecInfo;
SplitString(strName,_T("_"),vecInfo); //拆分信息
访问:vecInfo[0] = _T("A");
vecInfo[1] = _T("B");