2 回答

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊
現(xiàn)在你給出的字符串已經(jīng)知道了長(zhǎng)度,而且也知道分隔位置在哪兒,直接可以用CString::Right()函數(shù)獲取后半截,如下:
CString str="abcde base64 baaaaa";
str=str.Right(6);//等式右邊得到str的后6個(gè)字符組成的字符串然后賦值給str
如果先前不知道分割點(diǎn)的確切位置的話,可以用如下函數(shù)查找:
CString::Find() //1
CString::FindOneOf() //2
函數(shù)1有如下幾個(gè)原型:
int Find( TCHAR ch ) const;
int Find( LPCTSTR lpszSub ) const;
int Find( TCHAR ch, int nStart ) const;
int Find( LPCTSTR lpszSub, int nStart ) const;
函數(shù)2的原型為:
int FindOneOf( LPCTSTR lpszCharSet ) const;
找到分隔點(diǎn)位置后就可以截取了。
與CString::Right(int n)相對(duì)的還有CString::Left(int n),它是用來(lái)截取字符串前面n個(gè)字符的

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊
CString str="65.3 42.3 65 66 78.1 69";
CString temp;
int lenth=str.GetLength();
int nfrist=str.Find(" ");
while(1)
{
if(nfrist!=-1)
{
temp=str.Left(nfrist);
MessageBox(temp);
temp=str.Right(lenth-nfrist-1); //減掉1 為了去掉空格
str=temp;
nfrist=str.Find(" ");
lenth=str.GetLength();
}
else
{
MessageBox(str);
break;
}
}
沒(méi)怎么優(yōu)化 按照字符串" " 查找的 建議改成特殊字符別用空串 或者空字符' ' 沒(méi)怎么優(yōu)化 你自己把MessageBox 彈出來(lái)的保存就行了
- 2 回答
- 0 關(guān)注
- 104 瀏覽
添加回答
舉報(bào)