ある文字列配列に既に格納されている文字列の一部を別の空の配列にコピーしようとしました。(char配列へのポインタの配列と呼ばれると思います)
各文字列の最初の 3 文字をコピーし、それらを 2 番目の配列に格納してから出力したいと思います。
AAA
BBB
CCC
DDD
EEE
FFF
これが私のコードです。
void main()
{
/*ARRAY 1*/
char *line1 = "AAAAA";
char *line2 = "BBBBB";
char *line3 = "CCCCC";
char *line4 = "DDDDD";
char *line5 = "EEEEE";
char *line6 = "FFFFF";
char *array1[6];
array1[0] = line1;
array1[1] = line2;
array1[2] = line3;
array1[3] = line4;
array1[4] = line5;
array1[5] = line6;
int i;
char *array_main[6];
for(i = 0; i<6 ; i++ ) {
array_main[i] = ("%*.*s\n",1,3,array1[i]);
printf("%s", array_main[i]);
printf("\n");
}
}
ここでmallocを実行する必要がありますか? (array_main [i]の場合)私が理解していることから、基本的には特定の文字のアドレスをarray_mainの要素にコピーしているだけです。
編集 - 申し訳ありませんが、これをより明確にする必要がありました.array_mainで文字列を収集し、実際にデータをコピーするループの外で順番に出力したいと思います。