首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-03-18 
如何获得字符串数组元素个数!!!如以下字符串数组,如何可以获得每个数组元素的个数,承蒙指教:conststringma

如何获得字符串数组元素个数!!!
如以下字符串数组,如何可以获得每个数组元素的个数,承蒙指教:
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的办法使用模板来推导出来

热点排行