题目大意:在给出的段落里面找出“doge”出现的次数。大写和小写都能够。
解题思路:字符串匹配问题,能够在之前将字母都转换成统一格式。
代码:
#include <stdio.h> #include <string.h> const int N = 1e6; char str[N]; const char *s1 = "doge"; int find () { int sum = 0; char *p = strstr(str, s1); while (p != NULL) { sum++; p = p + 4; //if (*p == '\0') // break; p = strstr (p, s1); } return sum; } int main () { int count = 0; while (scanf ("%s", str) != EOF) { for (int i = 0; i < strlen (str); i++) if (str[i] >= 'A' && str[i] <= 'Z') str[i] += 32; count += find (); } printf ("%d\n", count); return 0; }