Kamis, 17 November 2011

Copy string ke member struct

Hari ini mau tulis mengenai cara kopi string ke member struct yg berbentuk array of char. Misalkan ada struct yang bentuknya begini :

typedef struct {
      char member1[10];
      char member2 [15];
}st;

lalu ada string (array of char) seperti ini :

char buff[70] = "Hari ini kita belajar programing bahasa C dengan bahasan struct";

lalu untuk mengkopinya, kita menggunakan memcpy, berikut cuplikan codenya :

st myST;
memcpy(myST.member1, &buff[0], 9);
memcpy(myST.member2, &buff[10], 14);
printf("member1  %s", myST.member1);
printf("member2  %s", myST.member2);

outputnya :

member1 Hari ini k
member2 ita belajar pro

Tapi jika codenya kita salah tulis size num, misalnya :

memcpy(myST.member1, &buff[0], 10);
printf("member1  %s", myST.member1);

maka yg nantinya ke print

member1 Hari ini kita belajar prog

bisa dilihat walaupun yg ingin kita kopi 10 tapi yg ke kopi malah 25, itu karena setiap member dalam struct itu saling berhubungan. Jadi bisa dibilang ukurannya adalah jumlah size dari 2 member dalam struct tersebut.

*sekedar info panjang buff diatas itu 63