我正在尝试从字符串(a = ATCG)获取子字符串,然后将其存储在数组中但是我收到警告:赋值从指针生成整数而没有强制转换[默认情况下启用] DNA [I] = DNA1;
我想要打印输出数组: ATCG TCG CG ģ
我是C的新手,我该如何解决这个问题?
这是我的计划
int main()
{
char a[]="ATCG", dna[20], *dna1 ;
dna1 = (char *)malloc(2000);
int i, len_of_seg_2;
for(i = 0; i < strlen(a); i++)
{
len_of_seg_2=strlen(a)-i+1;
strncpy(dna1, a+i, len_of_seg_2);
dna1[len_of_seg_2-1]='\0';
dna[i]=dna1;
printf("sequence:%s\n",dna1);
}
for(i=0;i<5;i++){
printf("\nseq:%s\n",dna[i]);
}
return 0;
}
答案 0 :(得分:2)
答案 1 :(得分:0)
dna1
的类型为char *
,dna[i]
的类型为char
。错误正是它所说的。您正在将指针(dna1)分配给整数值(dna [i])。你不能这样做 - 实际上,你可以和你一样,这就是你看到这个警告的原因 - 没有明确地告诉编译器你想要这样做(在这种情况下是dna[i] = (char)dna1;
)。也许你的意思是dna[i] = *dna1?
。我不知道你想做什么。
另外,请记住free(dna1)
的良好做法。