8.1

#include<math.h>
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    int i;            //用于循环
    int k;            //表示平局的间隔次数
    int index;        //标记平局次数
    char name[20];    //输入出招名字
    scanf("%d",&k);
    index=k;        //标记住间隔次数
    while(1)
    {
        scanf("%s",name);
        if(strcmp(name,"End")==0)
            break;
        else
        {
            if(index==0)
            {
                if(strcmp(name,"ChuiZi")==0)
                    printf("ChuiZi\n");
                if(strcmp(name,"JianDao")==0)
                    printf("JianDao\n");
                if(strcmp(name,"Bu")==0)
                    printf("Bu\n");
                index = k;
            }
            else
            {
                if(strcmp(name,"ChuiZi")==0)
                    printf("Bu\n");
                if(strcmp(name,"JianDao")==0)
                    printf("ChuiZi\n");
                if(strcmp(name,"Bu")==0)
                    printf("JianDao\n");
                index--;            //每赢一次,间隔次数就少了1,当=0时,要平局
            }
        }
    }
    return 0;
}
#include<stdio.h>
#include<ctype.h>
//判断是否为空格or非字母非数字字符
int Judge(char p)
{
    if ((p >= 'A' && p <= 'Z') || (p >= 'a' && p <= 'z') || (p >= '0' && p <= '9'))
    {
        return 0;
    }
    else
    {
        return 1;
    }
}
//去除空格
void DelBlank(char arr[], int len)
{
    int i = 0;
    for (i = 0; i < len; i++)
    {
        //处理开头的空格
        if (arr[0] == ' ')
        {
            int j = 0;
            for (j = 0; j < len; j++)
            {
                arr[j] = arr[j + 1];
            }
        }
        if (arr[i] == ' ')
        {
            int flag = Judge(arr[i + 1]);
            if (flag == 1)
            {
                int k = 0;
                for (k = i; k < len; k++)
                {
                    arr[k] = arr[k + 1];
                }
                i--;
            }
        }
    }
}
//大写转小写
void Tolower(char arr[], int len)
{
    int i = 0;
    for (i = 0; i < len; i++)
    {
        if (arr[i] != 'I')
        {
            arr[i] = tolower(arr[i]);
        }
    }
}
//替换并打印最终结果
void ReplacePrint(char arr[])
{
    printf("AI: ");
 
    int i = 0;
    for (i = 0; i < strlen(arr); i++)
    {
        if ((arr[i] == 'c' && arr[i + 1] == 'a' && arr[i + 2] == 'n' && arr[i + 3] == ' ' && arr[i + 4] == 'y' && arr[i + 5] == 'o' && arr[i + 6] == 'u') && (i == 0 || arr[i - 1] == ' ') && (arr[i + 7] == ' ' || arr[i + 7] == '\0' || Judge(arr[i + 7])))
        {
            printf("I can");
            i += 6;
        }
        else if ((arr[i] == 'c' && arr[i + 1] == 'o' && arr[i + 2] == 'u' && arr[i + 3] == 'l' && arr[i + 4] == 'd' && arr[i + 5] == ' ' && arr[i + 6] == 'y' && arr[i + 7] == 'o' && arr[i + 8] == 'u') && (i == 0 || arr[i - 1] == ' ') && (arr[i + 9] == ' ' || arr[i + 9] == '\0' || Judge(arr[i + 9])))
        {
            printf("I could");
            i += 8;
        }
        else if (arr[i] == 'I' && (i == 0 || arr[i - 1] == ' ') && (arr[i + 1] == ' ' || arr[i + 1] == '\0' || Judge(arr[i + 1])))
        {
            printf("you");
        }
        else if ((arr[i] == 'm' && arr[i + 1] == 'e') && (i == 0 || arr[i - 1] == ' ') && (arr[i + 2] == ' ' || arr[i + 2] == '\0' || Judge(arr[i + 2])))
        {
            printf("you");
            i += 1;
        }
        else
        {
            printf("%c", arr[i]);
        }
    }
}
void Change(char arr[], int len)
{
    int i = 0;
    for (i = 0; i < len; i++)
    {
        if (arr[i] == '?')
        {
            arr[i] = '!';
        }
    }
}
int main()
{
    int n = 0;
    scanf("%d", &n);
    getchar();
    char arr[1001] = { 0 };
    int i = 0;
    for (i = 0; i < n; i++)
    {
        gets(arr);
        printf("%s\n", arr);
        int len = strlen(arr);
        DelBlank(arr, len);
        Tolower(arr, len);
        Change(arr, len);
        ReplacePrint(arr);
        printf("\n");
    }
    return 0;
}

 

posted @ 2023-08-01 21:18  徐星凯  阅读(67)  评论(0编辑  收藏  举报