数据结构【串及其应用】试写一统计某文本中某些字符串的出现次数和位置。C语言源代码

如题所述

int i=0; //记录次数初始值,逐字符的扫描这个文本,如果有这个字符,就i++。如果没有就继续扫描下一个字符。

#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]!bai='\0';i++){

if(a[i]==cmp[0]){

int j=1;

int site=i+1;

if(cmp[j]!=a[site]){

flag=0;

break;            

if(flag==1)count++;

}

printlf("%d\n",count);

}

扩展资料:

数据元素的机内表示(映像方法): 用二进制位(bit)的位串表示数据元素。通常称这种位串为节点(node)。当数据元素有若干个数据项组成时,位串中与各个数据项对应的子位串称为数据域(data field)。因此,节点是数据元素的机内表示(或机内映像)。

关系的机内表示(映像方法):数据元素之间的关系的机内表示可以分为顺序映像和非顺序映像,常用两种存储结构:顺序存储结构和链式存储结构。顺序映像借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系。非顺序映像借助指示元素存储位置的指针(pointer)来表示数据元素之间的逻辑关系。 

参考资料来源:百度百科-数据结构

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-12-13
#include <stdio.h>
#include <string.h>

int findstr(char *s,char *d,int start) {
char *p = s + start,*q;
int i;
while(*p) {
i = p - s;
q = d;
while(*p == *q) { p++; q++; }
if(*q == '\0') return i;
p = s + (++i);
}
return -1;
}

int main() {
char s[] = "1230456078903210654098703690258014701590268084303650125045207890658062503350";
char t[] = "04";
int pos[20],i,n = 0,start = 0,len = strlen(t);
while((pos[n] = findstr(s,t,start)) >= 0 && n < 20) {
start = pos[n] + len;
++n;
}
for(i = 0; i < n; ++i) printf("%d ",pos[i]);
printf("\n");
return 0;
}

追问

666

本回答被提问者和网友采纳
第2个回答  2016-12-14
用kmp算法可以匹配字符串
第3个回答  2016-12-13
C语言源代码
真的不懂啊
相似回答