题目:
注意事项:
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; }