尝试解决 projectlovelace.net 上的问题。我不明白为什么我不能通过指针赋值,就好像它是一个数组一样。我认为这是可能的。
自从我用 C 编码以来已经有一段时间了,所以我确信有一个明显的明显原因。 (问题要求我返回字符串并更改字符串,以防万一。)
#include <stdio.h>
#include <string.h>
char* rna(char* dna) {
size_t i, len = strlen(dna);
char rna[len + 1];
rna[len] = '\0';
for(i = 0; i < len; i++){
char letter = dna[len - 1 - i];
if(letter == 'T')
letter = 'U';
rna[i] = letter;
}
// problem is here.
for(i = 0; i < len; i++)
dna[i] = rna[i];
return dna;
}
int main(void){
char *dna = "CCTAGGACCAGGTT";
printf("Input DNA: %s\nOutput RNA: %s\n", dna, rna(dna));
return 0;
}
即使使用 dna[0] = 'X'
也会导致段错误。