0

我正在编程刽子手。

疑问词保存在 char word_list[], const 字符串中。

word_list[] = {"apple", "computer", ..., "mouse"};

问题是从 中随机选择的word_list[],当我使用随机函数时,我想知道word_list[].

word_list是 的指针char*,对吗?

最后,我怎么知道字符串的数量word_list[]??

4

4 回答 4

3

如果word_list[]像您的代码片段一样声明,您可以通过执行以下操作获取元素数:

const size_t word_count = sizeof(word_list) / sizeof(word_list[0]);

您可能会考虑一种更灵活的方法,例如在运行时读取 a std::vectorof 。std::string这将允许您修改单词列表而无需重新编译,并且该vector::size()函数会告诉您元素的数量。

于 2012-06-03T03:36:41.193 回答
1

对于您定义的初始化数组,您可以使用 C 方法来确定数组中的元素数。此方法使用sizeof运算符查找数组对象的总大小,然后将该值除以数组元素的大小。

const char * word_list[] = { "a", "b", "c" };

for (int i = 0; i < sizeof(word_list)/sizeof(word_list[0]); ++i) {
    // do something
}

如果word_list是 STL ,您可以在容器上vector使用该方法。size()

于 2012-06-03T03:37:14.343 回答
0

由于您对字符串进行了硬编码,因此您也应该对字符串的数量进行硬编码。

char* word_list[] = {"apple", "computer", "mouse"};
int words = 3;
于 2012-06-03T03:37:42.350 回答
0

word_list应该是char* [](char 指针数组)。由于它是一个数组,因此您可以通过sizeof (word_list) / sizeof(word_list[0]).

于 2012-06-03T03:36:33.707 回答