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;