C语言如何统计特定字符串出现次数?

编写函数实现从一个字符串中计算特定子字符串 aba(区分大小写)的个数。要求字符串的长度不超过 256,允许字符为 a-z, A-Z,且需要考虑重叠的情况(如示例2)。
示例1:
输入 ababcefseabACEdfabade
输出 2
示例2:
输入abababadedADffaba
输出 4
输入
一串字符(长度不超过 256)。
输出
这串字符中特定子字符串 aba(区分大小写)的个数。
样例输入
abababadedADffaba
样例输出
4

第1个回答  2018-10-16
#include<stdio.h>
int main(){
char cmp[3]="aba";
char a[256];
scanf("%s",a);
int i;
int count=0;
for(i=0;a[i]!='\0';i++){
if(a[i]==cmp[0]){
int j=1;
int site=i+1;
int flag=1;
for(j=1;cmp[j]!='\0';j++,site++){
if(a[site]!='\0'){
flag=0;
break;
}
if(cmp[j]!=a[site]){
flag=0;
break;
}
}
if(flag==1)count++;
}
}
printlf("%d\n",count);
}

追问

char cmp[3]="aba";这句调试了一下好像不能初始化啊

追答

把3去掉

追问

count一直是0

追答不好意思手头没有编译器所以程序自己也没跑= =..
if(a[site]!='\0')改成if(a[site]=='\0')

本回答被提问者和网友采纳
第2个回答  2018-10-22
这不是我们的作业吗?
相似回答