所以我有一个结构,其中一个成员是一个字符串。
struct Output {
char *axis;
int value;
};
struct Output Jsoutput;
我的问题是,如何在轴中存储字符串?
char whichaxis[4][3] = {"LX","LY","RY","RX"};
// Store which axis and value of the joystick position in Jsoutput
Jsoutput.axis = whichaxis[jse.number];
printf("%s\n",Jsoutput.axis);
我觉得某处应该有一些&
,但不知道在哪里。
答案 0 :(得分:4)
只需使用strdup
Jsoutput.axis = strdup(whichaxis[jse.number]);
答案 1 :(得分:1)
您可以使用strcpy(destination, source)
string.h
复制字符串
请参阅http://www.cplusplus.com/reference/cstring/strcpy/
Jsoutput.axis = malloc(3);
strcpy(Jsoutput.axis,whichaxis[jse.number]);
答案 2 :(得分:0)
您不必再次“存储”字符串。
char whichaxis[4][3] = {"LX","LY","RY","RX"};
存储字符串。
char *axis;
说“我要指向一个字符串”。
如果你想要&
,你可以这样做:
Jsoutput.axis = & (whichaxis[jse.number][0]) ;
但是C的原始设计者非常务实,为方便起见,让数组一直变成指针。有关详细信息,请参阅What is array decaying。