C++ MFC 按位截取字符串

例如字符串 01 00 00 88 02 00 00 88 03 00 00 88 04 00 00 88
每隔12位截取字符串进行处理 获得 01 00 00 88进行处理 再获得 02 00 00 88 处理
最新回答
枕头说它不想醒

2024-05-16 04:55:42

使用CString Mid( int nFirst, int nCount ) const;
参数:
nFirst
此CString对象中的要被提取的子串的第一个字符的从零开始的索引。

nCount
要从此CString对象中提取的字符数。如果没有提供这个参数,则字符串的其余部分都被提取。
// CString::Mid示例:
CString s( _T("abcdef") );
ASSERT( s.Mid( 2, 3 ) ==
_T("cde") );

//可以做参考
CString s2(_T("01 00 00 88 02 00 00 88 03 00 00 88 04 00 00 88"));
whie()
{
int nPos = 0
CString temp = s2.Mid(nPos ,12); 从索引零开始12个字符
nPos += 12;

}
醉酒吟春秋

2024-05-16 06:13:17

如果用MFC的CString 类,实现起来比较简单,可以使用Mid( int start, int count) 方法

如 :

CString str = "01 00 00 88 02 00 00 88 03 00 00 88 04 00 00 88";
int ct = str.GetLength();
for( int i = 0 ;i< ct; i+= 12)
{
    CString str2 = str.Mid(i,12);
    //对str2 进行处理
}