1

有没有办法知道 char* 数组中的元素数量?

我的代码是:

char* inputOptions[]={
    NULL,     
    "first sentence",
    "second sentence"}

for(int j=0;j<3;j++)
   cout<<inputOptions[j]<<endl;  

我想将'3'更改为依赖于'arr'的一些表达式。有没有办法这样做?

4

3 回答 3

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;
于 2012-09-19T09:15:43.713 回答
2
const char * inputOptions[] = {
    NULL,     
    "first sentence",
    "second sentence" };

const int numOptions = sizeof(inputOptions) / sizeof(inputOptions[0]);
于 2012-09-19T09:14:17.360 回答
1

您可以使用sizeof()静态数组,它会给您以字节为单位的大小。如果你将它除以指针大小,你将得到数组的大小:

siz = sizeof(inputOptions)/sizeof(char*);
于 2012-09-19T09:14:57.833 回答