我想使用C語言計算來自文本文件的基因數,三元組是一組3個字母。 基因由包含開始和結束的三元組序列組成。計算C文本文件中完整基因的數量C
開始該基因的: ATG基因的
端: TAA,TGA或TAG
的基因被認爲是,如果有效的開始和結束之間,例如至少一個三元組TAA ATG,不是有效的基因文本文件的
例如,文本文件可以有多個行
ATGGCA TAT ATG TGG AAGTAA GTT GTA ATGCAC GAT GGC AAC GGC GGCTAG CCA ATG AAA
此示例包含兩個基因
我到目前爲止嘗試過,不知道如何找到開始,然後結束。
int Count (char *file) {
FILE *ptr = NULL;
int count = 0;
char *start = "ATG";
char *end = "TAA"; // miss TGA, TAG
char chr;
int occur, i;
ptr = fopen(filename, "r"); //open text file
if (ptr == NULL)
return -1;
chr = fgetc(ptr);
while(chr != EOF){
if(ch == start[0]){
for(i=1; i< StrLen(start); i++){
chr = fgetc(ptr);
if(chr == EOF){
occur = 0;
break;
}
else if(chr != start[i]){
chr = fgetc(ptr);
occur = 0;
break;
}
else
occur = 1;
}
if(occur == 1){
count++;
}
} else{
chr = fgetc(ptr);
}
}
if (!feof(ptr)){
return -1;
}
fclose(ptr);
return count;
}
int StrLen(char *word){
int i = 0;
char c = word[0];
while(c != '\0'){
i++;
c = word[i];
}
return i;
}
請幫幫我! :)
請不要誤解爲「DoMyWork」的stackoverflow。從閱讀c文件開始,向前邁進,在編寫代碼時詢問你面臨的問題。 –
[你有什麼嘗試?](http://whathaveyoutried.com) – SparKot
似乎它將是一個微不足道的正則表達式。嘗試這種方法,如果您無法正確使用正則表達式,請回來。 – Barmar