Seperti yang saya tahu, saya dapat membuat array dengan item di dalamnya seperti:
char *test1[3]= {"arrtest","ao", "123"};
tetapi bagaimana saya bisa menyimpan input saya ke dalam array seperti kode di atas karena saya hanya bisa mengkodekannya sebagai
input[10];
scanf("%s",&input) or gets(input);
dan menyimpan setiap char ke dalam setiap ruang.
Bagaimana saya bisa menyimpan input "HELLO" sedemikian rupa sehingga disimpan ke dalam input[0] tetapi sekarang
H ke input[0], E ke input[1], dan seterusnya.
Gunakan larik 2-dimensi char input[3][10];
atau
sebuah array dari pointer char
(seperti char *input[3];
) yang harus dialokasikan memori secara dinamis sebelum nilai apapun disimpan di lokasi tersebut.
Kasus Pertama, ambil nilai input sebagai scanf("%s", input[0]);
, demikian pula untuk input[1]
dan input[2]
. Ingatlah bahwa Anda dapat menyimpan string dengan ukuran maksimal 10
(termasuk karakter '\0'
) di setiap input[i]
.
Dalam kasus kedua, dapatkan input dengan cara yang sama seperti di atas, tetapi alokasikan memori ke setiap pointer input[i]
menggunakan malloc
sebelumnya. Disini anda memiliki fleksibilitas ukuran untuk setiap string.
Tidak begitu mengerti apa yang Anda butuhkan. Tapi inilah yang saya duga.
char *a[5];//array of five pointers
for(i=0;i<5;i++)// iterate the number of pointer times in the array
{
char input[10];// a local array variable
a[i]=malloc(10*sizeof(char)); //allocate memory for each pointer in the array here
scanf("%s",input);//take the input from stdin
strcpy(a[i],input);//store the value in one of the pointer in the pointer array
}
coba kode di bawah ini:
char *input[10];
input[0]=(char*)malloc(25);//mention the size you need..
scanf("%s",input[0]);
printf("%s",input[0]);