我有3个用户需要在x和o之间进行选择。我询问用户1的选择,然后生成用户2和用户3的选择。我的3个字符是choice 1,choice 2,choice 3。当在我的代码中调用时,输出是字母choosed/generated。例如:用户1:x用户2:〇用户3:X如何创建一个数组来保存这3个char值?
char choice_value [2] = 'x' , 'o' char choices [3] = 'choice1','choice 2','choice3'
我说的对吗?
e0bqpujr1#
如果你想要一个三个字符串的数组,并且你想使用C风格的字符串,你有两个选择。
char *choices[3] = {"choice1", "choice2", "choice3"};
或者你可以声明一个数组的数组。我们给予每个字符串9个字符,加上空终止符的空间。
char choices[3][10] = {"choice1", "choice2", "choice3"};
区别是显著的。在第一种情况下,数组中的每个元素都是一个指向字符的 * 指针 *。如果你用字符串字面量初始化它,请注意你不能修改它们。如果你不这样做,请记住你需要确保它们指向有效的内存。在第二个选项中,内存是静态分配的。如果没有未定义的行为,这些字符串永远不会超过9个字符。如果使用C++,最好是std::string数组。
std::string
std::string choices[3] = ...
更好的方法是使用std::vector或std::array。
std::vector
std::array
1条答案
按热度按时间e0bqpujr1#
如果你想要一个三个字符串的数组,并且你想使用C风格的字符串,你有两个选择。
或者你可以声明一个数组的数组。我们给予每个字符串9个字符,加上空终止符的空间。
区别是显著的。在第一种情况下,数组中的每个元素都是一个指向字符的 * 指针 *。如果你用字符串字面量初始化它,请注意你不能修改它们。如果你不这样做,请记住你需要确保它们指向有效的内存。
在第二个选项中,内存是静态分配的。如果没有未定义的行为,这些字符串永远不会超过9个字符。
如果使用C++,最好是
std::string
数组。更好的方法是使用
std::vector
或std::array
。