题目:
注意事项:
1、为什么输入需要使用fgets()函数?
因为题目样例中出现了含有空格的字符串,而scanf()getchar()不具有接受空格字符串的能力,而gets()不安全,所以使用fgets()
fgets()用法
fgets(s2, 1005, stdin);
s2表示存放字符串的起始位置,而1005是一个整型num,存放多少个字符,stdin是输入流,需要记住!
2、在使用fgets()函数时,计算的长度要-1!
源码:
#include<cstdio>
#include<cstring>//C++与C语言在头文件定义的区别:C++去掉了.h加上了前缀c
int main()
{
char s1[1005], s2[1005];
fgets(s1,1005 ,stdin);
fgets(s2, 1005, stdin);
int len1 = strlen(s1) - 1;//注意使用fgets()函数时,计算字符串长度要-1
int len2 = strlen(s2) - 1;
int count = 0;
for (int j=0;j<len1-len2+1;j++)//外层循环逐位加
{
int flag = 0;
for (int i=0;i<len2;i++)//内层循环判断是否相等
{
if (s1[i+j] != s2[i])
{
break;
}
flag++;
}
if (flag == len2)
{
count++;
}
}
printf("%d",count);
return 0;
}
总结:
这道题是寻找单个字符的进阶版,变成了寻找一个字符串,
学会了在样例含有空格的情况下如何输入字符串!