如何將字符串「Hello World」傳遞給結構體的字段?
您首先需要爲test
聲明足夠的內存空間以包含所需的字符串。 "Hello World"
包含11個charachters。所以您的陣列應該至少包含12個元素
struct main_s {
char test[12];
};
,然後你的字符串複製到陣列:
struct main_s m;
strcpy(m.test, "Hello World");
printf("%s\n", m.test) // this display the content of your char array as string
如果要聲明一個二維數組:
struct main_s {
char test[3][13];
}
struct main_s m;
strcpy(m.test[0], "Hello World0");
strcpy(m.test[1], "Hello World1");
strcpy(m.test[2], "Hello World2");
printf("%s\n%s\n%s\n", m.test[0], m.test[1], m.test[2]);
的
strcpy(m.test[1], "Hello World1");
等同於NT才能:
m.test[1][0]='H';
m.test[1][1]='e';
m.test[1][2]='l';
.
.
m.test[1][10]='d';
m.test[1][11]='1';
m.test[1][12]='\0'; //add null charachter at the end. it's mandatory for strings
上述代碼不允許
m.test[1] = "Hello World1";
m.test[1] = {'H','e','l','l','o',' ','W','o','r','l','d','1'};
你不清楚你在問什麼,但這看起來像我們的老朋友_struct hack_(http://stackoverflow.com/questions/3711233/is-the-struct-hack-technically-未定義行爲)。參考文獻是否回答您的問題? – 2013-05-14 06:01:51
「是2維陣列測試[1] [x]?」什麼?!你在哪裏看到這兩個維度? – 2013-05-14 08:15:41