C ++查找char *数组中的元素数

时间:2012-09-19 09:12:25

标签: c++ arrays

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

我的代码是:

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

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

我想将'3'改为某些取决于'arr'的表达式。有办法吗?

3 个答案:

答案 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*);