我正在做一个小游戏,我想进行字符串比较,比较2个字符串,如果它们相等,我想将其打印出来。:
我包括了stdio.h
和string.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;
}
答案 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);