想要这样的一个数据,如果是静态的,可以用C语言来定义:
char array[][3][100] =
{
{"ABC01", "ABC02", "ABC03"},
{"ABC11", "ABC12", "ABC13"},
{"ABC21", "ABC22", "ABC23"},
{"ABC31", "ABC32", "ABC33"},
};
注意:上面的声明是初始化了4行,每行3列,每个空间为不超过100个的字符(含‘ ’);
如果是动态的数据,如何声明并使用,下面使用MFC中的CArray
CStringArrayssRows;//每一行字符串数组
CArrayarray;//之后去掉了&,仍旧编译失败
//
// 创建一个二维的字符串表格
//
int i, j;
array.RemoveAll();
for (i=0; i<100; i++)
{
ssRows.RemoveAll();
for (j=0; j<5; j++)
{
CString str;
str.Format("ABC%d%d", i, j);
ssRows.Add(str);
}
array.Add(ssRows);
}
//
// 访问这个字符串表格
//
for (i=0; i
{
ssRows = array.GetAt(i);
for (j=0; j
{
CString str = ssRows[j];
TRACE("%st", str);
}
TRACE("n");
}
编译失败的原因不明白!
在网上查到,据说CArray
换成声明vector
CStringArray ssRows;
vectorarray;
int i, j;
//创建二维字符串表格
for (i=0; i<100; i++)
{
ssRows.RemoveAll();
for (j=0; j<5; j++)
{
CString str;
str.Format("ABC%d%d", i, j);
ssRows.Add(str);
}
array.push_back(ssRows);
}
//访问二维字符串表格
for (i=0; i
{
ssRows = array[i];
for (j=0; j
{
CString str = ssRows[j];
TRACE("%st", str);
}
TRACE("n");
}
最后还是全部使用STL,vector