我正在编程刽子手。
疑问词保存在 char word_list[], const 字符串中。
word_list[] = {"apple", "computer", ..., "mouse"};
问题是从 中随机选择的word_list[]
,当我使用随机函数时,我想知道word_list[]
.
word_list
是 的指针char*
,对吗?
最后,我怎么知道字符串的数量word_list[]
??
如果word_list[]
像您的代码片段一样声明,您可以通过执行以下操作获取元素数:
const size_t word_count = sizeof(word_list) / sizeof(word_list[0]);
您可能会考虑一种更灵活的方法,例如在运行时读取 a std::vector
of 。std::string
这将允许您修改单词列表而无需重新编译,并且该vector::size()
函数会告诉您元素的数量。
对于您定义的初始化数组,您可以使用 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()
由于您对字符串进行了硬编码,因此您也应该对字符串的数量进行硬编码。
char* word_list[] = {"apple", "computer", "mouse"};
int words = 3;
word_list
应该是char* []
(char 指针数组)。由于它是一个数组,因此您可以通过sizeof (word_list) / sizeof(word_list[0])
.