题目:
在一行上输入两个字符串s和英文字符串t,要求在s中查找t。其中,字符串s,t均不包含空格,且长度均小于80。
输入格式:
首先输入一个正整数T,表示测试数据的组数,然后是T组测试数据。每组测试输入2个长度不超过80的字符串s和t(s和t都不包含空格)。
输出格式:
对于每组测试数据,若在s中找到t,则输出“Found!”,否则输出“not Found!”。引号不必输出。
输入样例:
2
dictionary lion
factory act
输出样例:
not Found!
Found!
解析:
代码如下(笔者提供一种思路,方法其实还有很多):
1.
#include<stdio.h>
#include<string.h>
void main()
{
int T, k, i, j, len1, len2, p;
scanf("%d", &T);
for (k = 1; k <= T; k++)//大循环,针对T次循环数据
{
char s[80], t[80];
char str[80];
scanf("%s%s",s,t);//不用gets因为本题字符串是以空格分隔的,而回车分隔的才需要用到gets
len1 = strlen(s);
len2 = strlen(t);
j = 0;
p=0;
for (i = 0; i < len1; i++)
{
if (s[i] == t[0])//找到与t第一字母相同的i坐标
{
strcpy(str,s+i);//把i后面的字符串提出来
str[len2]='\0';
if (strcmp(str,t)==0)//判断是否相等
{
printf("Found!\n");
p++;
}
}
}
if(p==0) printf("not Found!\n");
}
}