C++ 字符串 转 二维数组

 CString  aa = "11<225>22<225>33<225>44<000>aa<225>bb<225>cc<225>dd<000>ee<255>ff<255>hh<000>"想转为二维数组   求代码 学习

想转为二维数组 求代码 学习

 // app1.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "app1.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// The one and only application object

CWinApp theApp;

using namespace std;

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
    int nRetCode = 0;

    // initialize MFC and print and error on failure
    if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
    {
        // TODO: change error code to suit your needs
        cerr << _T("Fatal Error: MFC initialization failed") << endl;
        nRetCode = 1;
    }
    else
    {
        // TODO: code your application's behavior here.
        //CString strHello;
        //strHello.LoadString(IDS_HELLO);
        //cout << (LPCTSTR)strHello << endl;
        CString aa = "11<225>22<225>33<225>44<000>aa<225>bb<225>cc<225>dd<000>ee<255>ff<255>hh<000>";

        char * buffer = new char[aa.GetLength() + 1];
        strcpy(buffer, (LPCTSTR)aa);
        char ** arr = new char*[aa.GetLength()];
        int n = 1;
        arr[0] = &buffer[0];
        for (int i = 0; i < aa.GetLength(); i++)
        {
            if (buffer[i] == '<' || buffer[i] == '>')
            {
                arr[n] = &buffer[i + 1];
                buffer[i] = '\0';
                n++;
            }
        }
        for (i = 0; i < n - 1; i++)
        {
            printf("%s\n", arr[i]);
        }
    }

    return nRetCode;
}


11
225
22
225
33
225
44
000
aa
225
bb
225
cc
225
dd
000
ee
255
ff
255
hh
000
Press any key to continue