C++ 从Char数组输出到控制台
我正在创建一个必须使用字符而不是字符串的刽子手游戏。我想知道如何从字符数组中选择一个随机单词,并将其作为符号显示在控制台上,例如******而不是单词。我当前的数组;多谢各位C++ 从Char数组输出到控制台,c++,arrays,char,C++,Arrays,Char,我正在创建一个必须使用字符而不是字符串的刽子手游戏。我想知道如何从字符数组中选择一个随机单词,并将其作为符号显示在控制台上,例如******而不是单词。我当前的数组;多谢各位 char words [6][10] = { "Pistachio", "Avocado", "Salami", "Bologna", "Christmas", "Giraffes", }; 这就是我到目前为止所知道的我不太清楚 cout <<"Test " &
char words [6][10] =
{
"Pistachio",
"Avocado",
"Salami",
"Bologna",
"Christmas",
"Giraffes",
};
这就是我到目前为止所知道的我不太清楚
cout <<"Test " <<words <<endl;
这只是一个随机数???我想你在寻找这个:
#include<cstdlib>
int v;
for(int i=0; i<10; i++)
{
v = rand() %6;
printf("%s\n", words[v]);
}
要从cstring数组输出cstring,需要提供该字符串的索引
cout <<"Test " <<words <<endl;
将只打印数组的第一个元素的地址,因为这是数组名称的简化形式。因此,从阵列显示的正确方式是:
cout <<"Test " <<words[indexOfTheStringYouWant] <<endl;
单词是一个字符**一个字符数组[10]。如果我正确理解了您需要的是以下内容
#include <iostream>
#include <algorithm>
#include <numeric>
#include <cstdlib>
#include <ctime>
int main()
{
const size_t N = 6;
const size_t M = 10;
char words[N][M] =
{
"Pistachio",
"Avocado",
"Salami",
"Bologna",
"Christmas",
"Giraffes",
};
size_t index[N];
std::iota( index, index + N, 0 );
std::srand( ( unsigned int )std::time( nullptr ) );
std::random_shuffle( index, index + N );
for ( size_t i = 0; i < N; i++ ) std::cout << words[index[i]] << std::endl;
return 0;
}
请展示您迄今为止所做的尝试。@Josh160请查看我的答案。我强烈建议您至少学习一个基本的C教程……我是否将v声明为整数单词是数组的数组。它衰减为指向数组的指针char*[10],而不是char**。你说得对。。。我快速阅读我经常使用的字符*单词[]={…},它们会变成字符**。
#include <iostream>
#include <algorithm>
#include <numeric>
#include <cstdlib>
#include <ctime>
int main()
{
const size_t N = 6;
const size_t M = 10;
char words[N][M] =
{
"Pistachio",
"Avocado",
"Salami",
"Bologna",
"Christmas",
"Giraffes",
};
size_t index[N];
std::iota( index, index + N, 0 );
std::srand( ( unsigned int )std::time( nullptr ) );
std::random_shuffle( index, index + N );
for ( size_t i = 0; i < N; i++ ) std::cout << words[index[i]] << std::endl;
return 0;
}
Giraffes
Bologna
Pistachio
Avocado
Salami
Christmas