求帮忙解决一下字符串前后翻转问题!
#include"stdio.h"#include"stdlib.h"
FILE *in,*out;
void main()
{
int i=0,sum;
static char zifu,str[55000000];
in=fopen("F:\\寻找内含子序列\\内含子串联负序列.txt","rt"); //第12行
out=fopen("F:\\寻找内含子序列\\收获1.txt","wt");
while(!feof(in))
{
str[i]=fgetc(in);
i++;
}
for(i=0;i<SUM 2;i++)
{
zifu=str[i];
str[i]=str[sum-1-i];
str[sum-1-i]=str[i]; //第一个与最后一个、第二个与倒数第二个等替换
}
for(i=0;i<SUM;I++)
{
if(str[i]=='A')
{
str[i]='T';
continue; //加continue表明完成操作后继续循环,不执行下面的;要加{}否则不管第一个if是否成立执行continue继续循环
}
if(str[i]=='T')
{
str[i]='A';
continue;
}
if(str[i]=='C')
{
str[i]='G';
continue;
}
if(str[i]=='G')
str[i]='C';
}
sum=i;
for(i=0;i<SUM;I++)
fputc(str[i],out);
fclose(in);
fclose(out);
}
内含子串联负序列.rar
(762.61 KB)
上面的程序用来把文件中2813952个碱基长的字符串前后翻转一下,即第一个成最后一个,最后一个成第一个等,翻转过来之后,在对所有字符进行A换成T、T换成A、C换成G、G换成C的操作。
但现在程序运行不畅,总有小问题,同时运行很慢