有没有办法知道char *数组中的元素数量?
我的代码是:
char* inputOptions[]={
NULL,
"first sentence",
"second sentence"}
for(int j=0;j<3;j++)
cout<<inputOptions[j]<<endl;
我想将'3'改为某些取决于'arr'的表达式。有办法吗?
答案 0 :(得分:5)
是的,你可以写
std::distance(std::begin(inputOptions), std::end(inputOptions));
在C ++ 03中,使用
sizeof inputOptions / sizeof inputOptions[0]
但是,在C ++ 11中,您最好使用以下范围访问数组:
for (auto option: inputOptions)
cout << option << endl;
答案 1 :(得分:2)
const char * inputOptions[] = {
NULL,
"first sentence",
"second sentence" };
const int numOptions = sizeof(inputOptions) / sizeof(inputOptions[0]);
答案 2 :(得分:1)
您可以将sizeof()
与静态数组一起使用,它将以字节为单位给出大小。如果按指针大小除以它,您将得到数组的大小:
siz = sizeof(inputOptions)/sizeof(char*);