我正在制作这个程序来比较字母。这样做的目的是制作一个刽子手游戏。但我不能让字母比较工作
#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的投射,并且不知道如何解决这个问题。)
我确信有更多的编程知识,我应该能够解决这个问题,但我是一个初学者,几乎是在自己学习。任何提示都会非常有用:)
答案 0 :(得分:1)
在您的代码中,a
存储了Player1输入的临时值,因此如果Player1输入&#34;遵守&#34;,则在Plyaer1&#39之后结果为a = "e"
; s循环。在Player2的循环中,你总是比较&#34; e&#34;用户的输入。
解决方案可能是比较第一个字符而不是使用strcmp
y = b[c] - a1[0];