C:如何在结构中存储字符串

时间:2013-11-24 17:59:17

标签: c string struct

所以我有一个结构,其中一个成员是一个字符串。

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);

我觉得某处应该有一些&,但不知道在哪里。

3 个答案:

答案 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