要实现当用户输入形式不符合要求的ID时给出提示,可以使用字符串操作函数来检查ID的格式是否符合要求。以下是修改后的代码:void AddPlayer(Player players, int* num_players){ if(*num_players > MAX_PLAYERS) { printf("棋手信息数量已达最大,无法继续添加!\n"); return; } char id[5]; // 用来接收用户输入的ID printf("请输入棋手的ID(大写英文字母 P 加 3 位正整数):"); scanf("%s", id); // 检查ID的格式是否符合要求 if(strlen(id) != 4 || id[0] != 'P' || !isdigit(id[1]) || !isdigit(id[2]) || !isdigit(id[3])) { printf("ID格式不符合要求!请重新输入。\n"); return; } // 如果ID格式符合要求,则将其复制到players结构体中 strcpy(players.id, id); printf("请输入棋手姓名:"); scanf("%s", players.name); printf("请输入棋手身份:"); scanf("%s", players.identity); printf("请输入棋手段位:"); scanf("%s", players.rank); printf("请输入棋手等级分:"); scanf("%s", players.score); (*num_players)++; printf("棋手信息添加成功!\n"); SavePlayer(players, *num_players); printf("本地文件更新成功\n");}
在新增棋手时,首先创建一个临时的字符串变量`id`来接收用户输入的ID。然后通过字符串操作函数`strlen`检查ID的长度是否为4,以及通过逐个字符比较来判断ID的格式是否符合要求。如果不符合要求,则给出提示并返回,不继续执行后续代码。如果ID格式符合要求,则将其复制到`players`结构体的`id`字段中,然后继续执行后续的输入和保存操作。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |