#include<stdio.h>
#include<string.h>
int main(){
char a[100];
char b[100];
gets(a);
gets(b);
int count=0;
int i,j;
for(i=0;i<strlen(a);i++){
for(j=0;j<strlen(b);j++){
if(a[i+j]!=b[j]){
break;
}
}
if(j==strlen(b)){
count++;
}
}
printf("%d",count);
return 0;
}
ps:开始总是把问题想的很复杂,写的也很复杂-_-||
#include<stdio.h>
int main(){
char a[100];
char b[100];
gets(a);
gets(b);
char *p1=a;
char *p2=b;
int count=0;
while(*p1!='\0'){
if (*p1 == *p2)
{
p1++;
p2++;
}
else{
p1++;
}
if(*p2=='\0'){
count++;
p2=b;
}
}
printf("%d",count);
}
该程序使用C语言编写,通过两个for循环检查字符串a中是否存在字符串b作为子串,若找到则计数器增加。简化后的版本利用指针移动来优化查找过程,当找到匹配字符时同时移动两个指针,提高了效率。
计算字符串中子串出现的次数&spm=1001.2101.3001.5002&articleId=129783303&d=1&t=3&u=f1f5469acf934fc9b7b04e7a403f95ef)
2833

被折叠的 条评论
为什么被折叠?



