我正在制作这个程序来比较字母。这样做的目标是制作一款刽子手游戏。但我无法进行字母比较工作
#include<stdio.h>
#include<conio.h>
#include<string.h>
int c=0,x;
char a[50],b[50],n[50],j,h;
char a1[50],b1[50],y;
main()
{
printf("Player 1:enter a word\n");
gets(n);
x=strlen(n);
printf("%d letters\n",x);
puts("now enter the word letter by letter");
do
{
gets(a);
strcat(b,a);
c++;
}
while(c!=x);
printf("%s",b);
getch();
system("cls");
c=0;
puts("Player 2:try to guess the word letter by letter");
do
{
gets(a1);
y=strcmp(a,a1);
printf("%d",y);
strcat(b1,a1);
c++;
}
while(c!=x);
printf("%s",b1);
getch();
return 0;
}
我遇到了问题,尤其是播放器 2 部分。这不应该是整个比较字母程序;这只是将字母与播放器 1 部分中的任何内容进行比较(但它不断地拖拽 1 和 -1 并且不知道如何解决这个问题)。
我确信只要多一点编程知识,我应该能够解决这个问题,但我是一个初学者,几乎想自学。任何提示都会非常有帮助:)
最佳答案
在您的代码中,a
存储了 Player1 输入的临时值,因此如果 Player1 输入“abide”,则 Plyaer1 循环后的结果将为 a = "e"
。在 Player2 的循环中,您始终将“e”与用户的输入进行比较。
解决方案可能是比较第一个字符而不是使用 strcmp
y = b[c] - a1[0];
关于比较 c 上的字符(字母),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30565351/