C语言问题?

给定字符串S和T,求S在T中出现了多少次。

第1个回答  2020-06-21
出现了多少次 如何定义没讲清楚。假定:
"aa" 在 "aaaaBBBaa" 中出现次数 若为4,用函数 int SinT(char *T, char *S);
"aa" 在 "aaaaBBBaa" 中出现次数 若为3,那就用 函数 int SinT2(char *T, char *S);
程序如下:
#include <stdio.h>
int SinT(char *T, char *S){
int lt,ls,i,n=0;
lt=strlen(T); ls=strlen(S);
for (i=0;i<=lt-ls;i++){
if ( strncmp(T+i,S,ls)== 0) n++;
};
return n;
}
int SinT2(char *T, char *S){
int lt,ls,i,n=0;
lt=strlen(T); ls=strlen(S);
for (i=0;i<=lt-ls;i++){
// printf("%s\n",T+i);
if ( strncmp(T+i,S,ls)== 0) {n++;i=i+ls-1;};
};
return n;
}

int main(){
char T[]="aaaaBBBaa";
char S[]="aa";
printf("%d\n",SinT(T,S));
printf("%d\n",SinT2(T,S));
return 0;
}本回答被提问者和网友采纳