c语言查找字符串并报道其在字符串中的位置

来源:百度知道 编辑:UC知道 时间:2024/06/15 21:50:28
各位牛人:
小弟有个问题想向你们请教,能否帮忙解决一下?
是这样的有一个有ATGC组成的DNA序列:AAATAAATAAATAAATTTGCGATATATATATCGCGCGTAGGTAGGTAGGTAGGCGATTTCGATTTCGATTTCGATTTCGATTT
我们能很容易的看到序列内部有许多重复序列,AAATAAATAAAT,AAA,TTT,ATATATAT,CGCGCG,TAGGTAGGTAGGTAGG,CGATTTCGATTTCGATTTCGATTTCGATTT
我要问的问题是:如何在一个任意的DNA序列内部识别这些重复,并且以最大匹配的方式识别这些重复,例如重复AAATAAATAAAT, 而并不被看成是AAA,并且报告它们在序列中的位置,

假如是 ATCGATCGAT
那 ATCG
TCGA
CGAT
这3种都算有重复(各出现了两次)吗?

并且以最大匹配的方式识别这些重复
这句话中的最大表表述得不清楚,这样整个序列都可能成为一个……

/*这个程序我修改了一下,现在编译应该没有问题了*/
#include<stdio.h>
#include<string.h>
#define WRONG -1
void substring(char*);
int getnum(char *s,char *s1);
int main(){
char str[] = "AAATAAATAAATAAATTTGCGATATATATATCGCGCGTAGGTAGGTAGGTAGGCGATTTCGATTTCGATTTCGATTTCGATTT";
substring(str);
getch();
return 0;
}
void substring(char *p)
{
/*
** point 出现位置, frequency 连着出现次数, maxlen 字符串长度
*/
int point,frequency=1,maxlen=0,i,j=0,k=0,n,fr=0,max=1,l;
char *temp,*s;
temp = (char*)malloc(500);/*从母字符串提取出来,与其比较的字符串*/
s = (char*)malloc(500); /*找到后要输出的字符串*/
for(j=0;p[j];)
{ /*从第一个位置(A)开始一直到最后一个(T)确定每一个位置的最大匹配数*/
for(k=0;p[k+j];k++)
{
for(l=0;l<=k;l++)
temp[l] = p[l+j];
temp[k+1] = '\0';

用c语言编写一个程序,用于接收一个字符串,并统计某字符在该 字符串中出现的次数 c语言:字符串变量和字符数组 c语言,提取字符串中的字符 编写一个C函数,查找字符串中的子字符串,并返回这个字符串在原串中的起始位置. C语言指针问题:编写output函数,使其实现输出字符串左起奇数位上的字符 C语言编程:输入一个字符串,并删掉一个指定的字符。如输入JIGHH,删掉H C语言__数组中的查找某一元素,并显示其下标号!急!求高手! 在C语言中,字符数组能不能接受中间带空格的字符串 在C语言中 怎么讲单个的一个字符转换成字符串 用C语言编程 将字符串中的所有数字字符移到所有非数字字符之后,并保持原有的先后次序