gpt4 book ai didi

c - 猜单词 : I/O C logic error

转载 作者:太空宇宙 更新时间:2023-11-04 05:42:50 35 4
gpt4 key购买 nike

非常简单的程序:

int main (void)
{
int i = 0, length=0;
char password[] = SECRET;
char guess[10];

for (i=0; i<3; i++){
printf( "Enter the password: " );
fgets (guess, 10, stdin );
length=strlen(guess);
guess[length]='\0';
if(strcmp( guess, password ) == 0 ){
printf("\aYou got it right!\n" );
return 0;
}
else printf("You wrote %s Incorrect guess\n\n", guess);
}
puts("Sorry, you're all out of guesses");

return 0;

}

但它不起作用。

即使在我可以让程序说的奇怪情况下:“你猜的是‘black’。抱歉,密码是‘black’”认为可能存在一些隐藏字符、空格、垃圾信息或任何会影响字符串比较的问题,但我似乎无法找到它是什么!

最佳答案

如果您学习使用调试器,您可能会看到 fgets() 返回的字符串包含换行符,这与您比较的字符串不匹配。

这段代码的意义何在:

length=strlen(guess);
guess[length]='/0';

首先,我只能假设您指的是 \0 而不是 /0。其次,strlen() 通过定位空终止符来工作。那么找到终止符然后在同一位置写入终止符有什么意义呢?

关于c - 猜单词 : I/O C logic error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14025679/

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