题目描述:
模拟一个对话场景,请找出一个连续字符串中分别出现了多少个“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:\n",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\n");
else
printf("love\n");
}
}
}
}