分析:
将DNA的‘A'转换成’T‘,’T'转换成’A‘,将‘G’转换成‘C',将’C‘转换成’G‘
1 char *dna_strand(const char *dna) 2 { 3 char * p = strdup(dna); 4 int i = 0; 5 while (dna[i] != 0) 6 { 7 switch (dna[i]) 8 { 9 case 'A': p[i] = 'T'; break; 10 case 'T': p[i] = 'A'; break; 11 case 'G': p[i] = 'C'; break; 12 case 'C': p[i] = 'G'; break; 13 } 14 i++; 15 } 16 return p; 17 18 }
strdup()是将dna的副本拷贝到p,然后对p进行操作;
开始的时候用malloc/free,free不能对有值的指针进行两次释放否则会报错。