读书人

怎么获得字符串数组元素个数!

发布时间: 2012-03-18 13:55:39 作者: rapoo

如何获得字符串数组元素个数!!!
如以下字符串数组,如何可以获得每个数组元素的个数,承蒙指教:
const string mainMenuStr[] = { "1.Add Student 's Info ",
"2.Sort Student ",
"3.Print Student Report ",
"4.Search Student ",
"5.Load data from file ",
"6.Search students ",
"7.Stat Score ",
"0.Exit ",
"Please Make a choices[0-6]: "};
const string sortMenuStr[] = { "1.按学号升序排列 ",
"2.按学号降序排列 ",
"3.按成绩总分升序排列 ",
"4.按成绩总分降序排列 ",
"0.返回主菜单 ",
"请选择[0-4]: "};
const string searchMenuStr[] = { "1.按学号查询 ",
"2.按姓名准确查询 ",
"3.按姓名模糊查询 ",
"0.返回主菜单 ",
"请选择[0-3]: "};


[解决办法]
简单的办法是用宏
#define dim( x ) (sizeof(x)/sizeof(x[0]))
cout < <dim(mainMenuStr);
bt的办法使用模板来推导出来
[解决办法]
楼上的是利用模板编译原理,让编译器自动识别数组的大小。
如果在主函数中换成
int main(int argc, char* argv[])
{
const string * pstr=mainMenuStr;
cout < <func(pstr) < <endl;
return 0;
}
则肯定编译不过去的。
[解决办法]
如果要获得mainMenuStr元素个数的话,我觉得是不可能的事。
因为mainMenuStr只是个指针
试想:
char *ptr =NULL;
ptr = new char[10];
......
delete[]ptr;
ptr = NULL;
ptr指向的对象是可以动态分布的,怎么能凭ptr就确定其大小呢.

[解决办法]

探讨
简单的办法是用宏
#define dim( x ) (sizeof(x)/sizeof(x[0]))
cout < <dim(mainMenuStr);
bt的办法使用模板来推导出来

读书人网 >C++

热点推荐