C中的字符串比较(游戏项目)

时间:2018-09-05 16:56:57

标签: c

我正在做一个小游戏,我想进行字符串比较,比较2个字符串,如果它们相等,我想将其打印出来。:

我包括了stdio.hstring.h我使用的是 codeblocks 。 我尝试运行代码,但代码块显示

  

code.exe停止工作

有人可以帮我吗? 代码如下:

int main(void)
{
    typedef struct {
        char * name;
    } player;

    int player_number;
    player players[100];

    printf("What's your name?\n");
    scanf("%s",&players[0].name);

    printf("How many players are playing the game?\n");
    scanf("%d", &player_number);


    printf("Can you name your friends?\n");
    int d;
    for(d=1;d<player_number;d++)
    {
        scanf("%s", &players[d].name);
    }

    printf("Who is starting the game?\n");
    char * starter;
    scanf("%s",&starter);

    int e;
    for(e=0;e<player_number;e++)
    {
        if(strncmp(players[e].name, starter, 10)==0)
        {
            printf("%s is starting the game",starter);
            break;
        }
    }
    return 0;
}

2 个答案:

答案 0 :(得分:0)

我不太了解C,但是第一个输入中不应该有.name吗?

它看起来应该像我想的那样:

printf("What's your name?\n");
scanf("%s",&players[0].name);

答案 1 :(得分:0)

您需要有一些存储空间才能指向char *starter指向。

这是你的错误。

char * starter;
scanf("%s",&starter);

也在这里;

typedef struct {
char * name;
}player;

反而尝试一下;

typedef struct {
char name[100];
}player;

char starter[100];
scanf("%s",starter);