gpt4 book ai didi

c - 使用迭代以在 C 中编写更少重复和更少耗时的代码

转载 作者:太空宇宙 更新时间:2023-11-04 04:19:56 24 4
gpt4 key购买 nike

我正在编写一个代码来比较两个字符串以进行简单的猜谜游戏。一个字符串是预先设置的,在我的代码中是“Eggman”,然后将其与用户输入进行比较,如果相同位置的字母相同,则在屏幕上向用户显示该字母,如果不是与预设字符串相同然后出现问号。例如,由于预设字符串是“Eggman”,用户将被要求输入,如果输入是“Eclair”,那么程序输出“E??????”,这正是我想让程序做,但是我用了多个if语句,写起来很不方便,实在想不出迭代的办法。我考虑过使用 strcmp() 函数,但我很确定它不能用于比较字符串中的单数字符。代码如下:

#include <stdio.h>
#include <stdlib.h>
#include<string.h>
void checkAnswer();

int main()
{
checkAnswer();
return 0;
}
void checkAnswer()
{
char word[]="Eggman";
char input[4096];
printf("Guess the word:");
scanf("%s", input);
if (word[0]==input[0])
{
printf("E");
}
else
{
printf("?");

}
if (word[1]==input[1])
{
printf("g");
}
else
{
printf("?");

}
if (word[2]==input[2])
{
printf("g");
}
else
{
printf("?");

}
if (word[3]==input[3])
{
printf("m");
}
else
{
printf("?");

}
if (word[4]==input[4])
{
printf("a");
}
else
{
printf("?");

}
if (word[5]==input[5])
{
printf("n");
}
else
{
printf("?");

}

}

最佳答案

正如您所问,如果您可以使用循环,则有更简单的方法来解决您的问题,而不是定义多个。
我已尝试解决您的问题,希望对您有所帮助:

#include<stdio.h>
int main()
{
char word[]="Eggman";
char input[4096];
char abc[] ={0};
int i=0,f=0;
printf("Guess the word:");
scanf("%s", input);
while(1){
if(strcmp(input,word)==0)
{

break;
}
else
{
if(f==1){
scanf("%s", input);
}
else
{
f=1;
}
}
for(i=0;i<strlen(word);i++)
{

if(input[i]==word[i])
{

printf("%c",input[i]);
}
else
{
printf("?");
}

}
}
}

上面的程序会一次又一次地询问你,直到用户输入与声明的字符串匹配为止。

关于c - 使用迭代以在 C 中编写更少重复和更少耗时的代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47741366/

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