带有条件语句的strcmp

时间:2016-04-06 09:26:26

标签: c switch-statement printf conditional strcmp

假设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);

0 个答案:

没有答案