NOJ 爱过

题目描述:

模拟一个对话场景,请找出一个连续字符串中分别出现了多少个“ask”和“asked”,

每遇到一个单独的ask输出一行love,

每遇到一个asked输出一行loved(遇到asked中包含的ask时不输出love)


输入:

第一行为一个整数T,表示数据组数;

每组数据输入为一个长度不超过2000的字符串。


输出:

每组数据第一行输出“Case #x:“,x指代当前为第几组数据;

遇到一个ask输出一行love;

每遇到一个asked输出一行loved(遇到asked时不输出ask)。


样例输入:

1

kalsasketasked


样例输出:

Case #1:

love

loved


分析:

判断一组子字符串是否为’a‘,’s‘,’k‘,如果是,则继续判断是ask还是asked。

控制好判断条件很重要。


实现代码:

#include<stdlib.h>
#include<stdio.h>
#include<cstring>
int t,len;
char a[2000+1];
int main()
{
    scanf("%d",&t);
    getchar();
    for(int mm=1;mm<=t;mm++)
    {
        gets(a);
        len=strlen(a);
        printf("Case #%d:
",mm);
        for(int i=0;i<len-2;i++)
        {
            if(a[i]=='a'&&a[i+1]=='s'&&a[i+2]=='k')
            {
                 if(i+3<len&&i+4<len&&a[i+3]=='e'&&a[i+4]=='d')
                    printf("loved
");
                 else
                    printf("love
");
            }
        }
    }
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

原文地址:https://www.cnblogs.com/Tobyuyu/p/4965468.html