这么多夜猫子啊,大家要学我啊,早睡早起身体好啊啊,占个座,接分咯
认认真真的学习,踏踏实实的走路:戒骄戒躁!!!
#include<stdio.h> #include<string.h> #define N 20 void xc(char a[]); main(){ char a[N],b[N]; int i,j,x,y; int q=0,n=1; printf("请输入字符串:"); fflush(stdin); scanf("%s",a); printf("请输入比对字符串:"); fflush(stdin); scanf("%s",b); xc(a); xc(b); j=strlen(a); x=strlen(b); printf("%s\n%s %d %d",a,b,j,x); for(i=0;i<=j-x;i++){ n=1; for(y=0;y<x;y++) if(b[y]!=a[i+y]){n=0;break;} if(n==0)continue; q++;} printf("出现%d次",q); } void xc(char a[]){ int i;//转换函数 for(i=0;*(a+i)!='\0';i++) if(*(a+i)>'A'&&*(a+i)<'Z') *(a+i)=*(a+i)+'a'-'A'; }
#include <stdio.h> #include <string.h> char a[1000001] = {0}; char b[10001] = {0}; int main() { int i,j,k; int m,n; scanf("%d",&n); while(n--) { scanf("%s%s",b,a); int lena = strlen(a); int lenb = strlen(b); int next[20001] = {0,1}; for(i = 2;i<=lenb;i++) { if(b[next[i-1]-1] == b[i-1]) next[i] = next[i-1]+1; else next[i] = 1; } m = i = j = 0; while(i<lena) { if(-1 == j || a[i] == b[j]) { i++;j++; } else j = next[j]-1; if(j == lenb) { m++; } } printf("%d\n",m); } return 0; }