当前位置: 代码迷 >> 综合 >> PTA 7-49 稳赢 -strcmp(15 分)
  详细解决方案

PTA 7-49 稳赢 -strcmp(15 分)

热度:14   发布时间:2023-12-05 10:25:00.0

大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:

现要求你编写一个稳赢不输的程序,根据对方的出招,给出对应的赢招。但是!为了不让对方输得太惨,你需要每隔K次就让一个平局。

输入格式:

输入首先在第一行给出正整数K(≤10),即平局间隔的次数。随后每行给出对方的一次出招:ChuiZi代表“锤子”、JianDao代表“剪刀”、Bu代表“布”。End代表输入结束,这一行不要作为出招处理。

输出格式:

对每一个输入的出招,按要求输出稳赢或平局的招式。每招占一行。

输入样例:

2
ChuiZi
JianDao
Bu
JianDao
Bu
ChuiZi
ChuiZi
End
//结尾无空行

输出样例:

Bu
ChuiZi
Bu
ChuiZi
JianDao
ChuiZi
Bu
//结尾无空行

一道字符串输入与判断的水题 好题,很细节!!

#include <stdio.h>
#include <string.h>
int main()
{int k, c;char s[10];scanf("%d", &k);c = k;//为初始化准备getchar();//细节取‘\n’while (gets(s) && s[0] != 'E'){if (k != 0){switch (s[0]){case'C':printf("Bu\n"); break;case'J':printf("ChuiZi\n"); break;//对第一个字母判断就够了了case'B':printf("JianDao\n"); break;}k--;}else{printf("%s\n", s);k = c;//初始化迎来新开始}}return 0;
}

注:判断字符串不可直接s!="xxxx" ,需要用s[  ]或strcmp()函数

#include <stdio.h>
#include <string.h>
int main(void)
{char* str_1 = "abc"; char* str_2 = "abc"; char* str_3 = "ABC";if (strcmp(str_1, str_2) == 0)printf("str_1 is equal to str_2. \n");elseprintf("str_1 is not equal to str_2. \n");if (strcmp(str_1, str_3) == 0)printf("str_1 is equal to str_3.\n");elseprintf("str_1 is not equalto str_3.\n");
}

strcmp(str_1, str_2)如果两个字符串一样则返回0!!

strcmp()函数有许多变体,它们的基本功能是相同的,都是比较两个字符串,但其它地方稍有差别。下表列出了C语言提供的与strcmp()函数类似的一些函数:   
-----------------------------------------------------------------
    函  数  名                   作  用
-----------------------------------------------------------------
    strcmp()         对两个字符串进行大小写敏感的比较
    strcmpi()        对两个字符串进行大小写不敏感的比较
    stricmp()        同strcmpi()
    strncmp()        对两个字符串的一部分进行大小写敏感的比较
    strnicmp()       对两个字符串的一部分进行大小写不敏感的比较
-----------------------------------------------------------------
在前面的例子中,如果用strcmpi()函数代替strcmp()函数,则程序将认为字符串“ABC”等于“abc”

一些没用的小知识

  相关解决方案