假设buf将是WIN LOSE或DRAW,(我已经测试过这种情况),一些if语句根本没有运行。只有buf等于WIN的第一个语句,才会到达if语句中的开关。对于其他两种情况,其中buf等于LOSE或DRAW,程序不会输入if语句,也不会运行切换案例,并且会发生分段错误。我似乎无法找到错误。我不善于比较C中的字符串,如果有人可以请纠正我的错误,这将是很好的。谢谢。
程序中的一大块代码
const char* opp[1];
printf("passed declarer comp\n");
if(strcmp(buf, "WIN")==0) {
printf("Entered win statement\n");
switch(choice) {
case 1: opp[0]="Rock"; break;
case 2: opp[0]="Paper"; break;
case 3: opp[0]="Scissors"; break;
}
}
if(strcmp(buf, "LOSE")==0) {
printf("Entered lose statement\n");
switch(choice) {
case 1: opp[0]="Scissors"; break;
case 2: opp[0]="Rock"; break;
case 3: opp[0]="Paper"; break;
}
}
if(strcmp(buf, "DRAW")==0) {
printf("Entered draw statement\n");
opp[0] = playerChose[0];
}
printf("passed logic\n");
printf("%s\n", buf);
printf("%s\n",opp[0]);
printf("The other player chose %s, you %s\n", opp[0], buf);