C++ 用另一个字符数组替换字符数组
第一次真的在这里发帖,挺激动呵呵 所以我们从学校得到这个任务来制作一个刽子手游戏。我已经做了大部分困难的事情,但有一件事我似乎无法解决,谷歌也无法为我找到答案,所以我来了C++ 用另一个字符数组替换字符数组,c++,arrays,char,C++,Arrays,Char,第一次真的在这里发帖,挺激动呵呵 所以我们从学校得到这个任务来制作一个刽子手游戏。我已经做了大部分困难的事情,但有一件事我似乎无法解决,谷歌也无法为我找到答案,所以我来了 `int guess() { char letter[0]; int tries=0; for(int i=0;i<length;i++) { meme[i]='_'; } cout<<meme; cout<<"Guess a
`int guess()
{
char letter[0];
int tries=0;
for(int i=0;i<length;i++)
{
meme[i]='_';
}
cout<<meme;
cout<<"Guess a letter: ";
cin>>letter;
while(strlen(letter) >= 2)
{
cout<<"Guess a letter: ";
cin>>letter;
}
for(int i=0;i<length;i++)
{
if(letter[0]==word[i])
{
meme[i]=letter[0];
}
else
{
//Fel bokstav
}
cout<<meme;
}
}`
`int guess()
{
字符字母[0];
int=0;
对于(int i=0;i问题是你做了cout问题是你做了cout我看到的一个问题是:char letter[0]
。这将是一个空数组。我想你应该做类似char letter[100]
的事情。我看到的一个问题是:char letter[0]
。这将是一个空数组。我想你应该做一些类似于字符字母[100]
的事情。这不是一个答案,而是一个观察:你必须使用字符数组吗?有三个可能的答案:是-展示你的老师在CppCon 2015上的演讲:“停止教授C”;否-我想出于教育目的-没关系;否-使用std::string。您的字符字母[0]
在这里不正确:您正在创建大小为0的字符数组。之后,您想使用std::cin
在那里保存一些内容,您甚至还需要检查while(strlen(字母)>=2)边/注:你的老师限制你使用char数组,或者你可以使用STL库?这样你就可以混合C和C++了。使用<代码> STD::String < /C> >代替Char数组将更容易,并且会导致更好的代码可读性。你的注释部分错了。<代码> Char字母(0)
确实不正确,部分原因是它使程序格式不正确。strlen(字母)>=2
从不为真是不正确的。strlen(字母)
具有未定义的行为,因为字母
不可能包含以null结尾的字符串,这是一个先决条件。因此,程序可以具有任何行为,包括但不限于返回strlen(字母)
大于1.ProXicT,我认为我们可以使用STL库,她只是不希望我们使用字符串,因为她认为我们还没有学会面向对象。每个人都告诉我,我不能创建大小为0的字符数组,但它的工作方式与我希望的完全一样。犯这样的错误有什么坏处?不稳定的code.您总是在数组边界之外写入,这会触发未定义行为。未定义行为的结果,正如您应该从名称中怀疑的那样,是未定义的。可能它会做您想做的事情。可能不会。可能它会让您的计算机长出腿来,吃掉邻居的猫。这不是一个答案,而是一个观察:doy y你必须使用字符数组?有三种可能的答案:是-展示你的老师在CppCon 2015上的演讲:“停止教授C”;否-我想出于教育目的-没关系;否-使用std::string.your字符[0]
此处不正确:您正在创建大小为0的字符数组。在此之后,您希望使用std::cin
在那里保存一些内容,您甚至可以选中while(strlen(字母)>=2)边/注:你的老师限制你使用char数组,或者你可以使用STL库?这样你就可以混合C和C++了。使用<代码> STD::String < /C> >代替Char数组将更容易,并且会导致更好的代码可读性。你的注释部分错了。<代码> Char字母(0)
确实不正确,部分原因是它使程序格式不正确。strlen(字母)>=2
从不为真是不正确的。strlen(字母)
具有未定义的行为,因为字母
不可能包含以null结尾的字符串,这是一个先决条件。因此,程序可以具有任何行为,包括但不限于返回strlen(字母)
大于1.ProXicT,我认为我们可以使用STL库,她只是不希望我们使用字符串,因为她认为我们还没有学会面向对象。每个人都告诉我,我不能创建大小为0的字符数组,但它的工作方式与我希望的完全一样。犯这样的错误有什么坏处?不稳定的code.您总是在数组的边界之外写入,这会触发未定义的行为。未定义行为的结果,正如您应该从名称中怀疑的那样,是未定义的。可能它会做您想做的事情。可能不会。可能它会让您的计算机长出腿来,吃掉邻居的猫。这是真的,不是标准的,但有些是错误的r甚至不会警告您,除非您指定-pedantic
,至少是gcc。这是真的,不是标准的,但某些编译器甚至不会警告您,除非您指定-pedantic
,至少是gcc。
for(int i=0;i<length;i++)
{
if(letter[0]==word[i])
{
meme[i]=letter[0];
}
else
{
//Fel bokstav
}
}
cout<<meme;