比较c上的字符(字母)

时间:2015-06-01 03:45:45

标签: c

我正在制作这个程序来比较字母。这样做的目的是制作一个刽子手游戏。但我不能让字母比较工作

#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的投射,并且不知道如何解决这个问题。)

我确信有更多的编程知识,我应该能够解决这个问题,但我是一个初学者,几乎是在自己学习。任何提示都会非常有用:)

1 个答案:

答案 0 :(得分:1)

在您的代码中,a存储了Player1输入的临时值,因此如果Player1输入&#34;遵守&#34;,则在Plyaer1&#39之后结果为a = "e" ; s循环。在Player2的循环中,你总是比较&#34; e&#34;用户的输入。

解决方案可能是比较第一个字符而不是使用strcmp

y = b[c] - a1[0];