Я пытаюсь получить подстроки из строки (a = ATCG), а затем сохранить его в массиве, но я получаю предупреждение: присваивание делает целое число из указателя без литого [ включен по умолчанию] dna [i] = dna1;Сохранить строки из цикла for в массив в c
Я хочу, чтобы выходной массив для печати: ATCG TCG CG G
Я новичок в 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;
}
'' dna1' является символ *, 'днк [я]' 'является char'. Ошибка в том, что она говорит. Вы назначаете указатель на целочисленное значение. Может быть, вы имели в виду 'dna [i] = * dna1'? Кроме того, не забудьте «free (dna1)» для хорошей практики. – ddz
Что вы пытаетесь сделать в инструкции 'dna [i] = dna1;'? Вы пытаетесь скопировать один символ или строку. Если вы пытаетесь скопировать строку, то почему пункт назначения ('dna [i]') является символом? –
Я пытаюсь скопировать всю строку. В заявлении dna [i] = dna1; Я пытаюсь сохранить dna1 как номер элемента i в массиве dna. Спасибо – user2694962