gpt4 book ai didi

c - 我的输出中出现 _\377

转载 作者:行者123 更新时间:2023-11-30 16:52:47 25 4
gpt4 key购买 nike

我的学校作业是制作一个刽子手游戏。游戏按照我想要的方式运行,除了一个小故障。如果用户输入的单词不超过 4 个字母,则会显示隐藏单词,并在末尾添加一个额外的“_\377”。当用户输入的单词是 5 个字母或更多时,就不会出现故障。我希望有人能好心地帮助我解决问题。提前致谢!

  #include <stdio.h>
#include <stdlib.h>
#include <string.h>


int letterfinder(char string[], char a, int vari)
{
int length = strlen(string);
int i = vari;
int val = 0;
while( i <= length && val != 1)
{
if( string[i] == a)
{
val = 1;
}
i++;
}
if( val == 0)
{
return 100;
}
else
{
return i;
}
}



int main()
{
char inWord[] = "1111111111111111111111111111";
char outWord2[] = "1111111111111111111111111111";
char guess;
int gameover = 0;
int trys = 10;
int vari = 0;
printf("Please enter a word: ");
gets(inWord);
printf("%s\n", inWord);
printf(" \n");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" \n");
printf(" \n");
int i2 = 0;
int j2 = 0;
int i3 = 0;
i2 = strcspn(inWord, outWord2);
char outWord[80];
while(i3 < i2)
{
outWord[i3] = '1';
i3++;

}

while(j2 < i2)
{
outWord[j2] = '-';
j2++;
}
puts(outWord);

while(gameover != 1 )
{
printf("What is your guess: ");
scanf("%s", &guess);
vari = 0;
if(letterfinder(inWord, guess, vari) == 100)
{
printf("Wrong!");
trys--;
printf("You have %d attempts left\n", trys);
if(trys == 0)
{
gameover = 1;
printf("You ran out of attempts. Game over\n");
}
}
else
{
outWord[(letterfinder(inWord, guess, vari) - 1)] = guess;
vari = (letterfinder(inWord, guess, vari));
while(letterfinder(inWord, guess, vari) != 100)
{
outWord[(letterfinder(inWord, guess, vari) - 1)] = guess;
vari = letterfinder(inWord, guess, vari);
}
puts(outWord);

}
int value = 0;
i3 = 0;
while( i3 <= i2)
{
if( outWord[i3] == '-')
{
value = 1;
}
i3++;
}
if(value != 1)
{
printf("Congratulations, you have guessed the word!\n");
gameover = 1;
}

}
return 0;
}

最佳答案

您的代码有未定义的行为。在它“起作用”的情况下,这只是偶然/运气。 字符猜测; scanf("%s", &guess); 当您将字符串写入只能保存单个字符的变量时,这会导致内存损坏。即使是单个字母的猜测也需要两个字符来存储,因为所有 C 字符串都以 NUL 结尾。 – 凯勒姆

关于c - 我的输出中出现 _\377,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41114249/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com