请推荐使用C语言从整数到char*的大多数简单转换,其中整数只能是0和1。
我有一个函数,它返回0或1作为整数。
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(mytogglebutton));在其他模块中,它是函数,并且在第三个声明中。
int set_locals(char* s_setting, char* s_value);我尝试这样做:
set_locals("my_prop", (char*)gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(mytogglebutton)));但这行不通。
我知道如何使用sprintf,但是当这里只有0和1时,也许有人知道更短的方法?
发布于 2012-02-01 07:20:47
最短的方法是使用三元条件运算符:
set_locals("my_prop",
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(mytogglebutton)) ? "1" : "0" );然而,这是一个const char*,但正如您提出的问题,我不认为这将是一个问题。
发布于 2012-02-01 07:21:01
char*表示指向包含char (或连续char数组的开头)的内存位置的指针。因此,您不能直接使用值0或1而不会导致程序失败,因为0和1表示内存位置。
您可以按如下方式使用三元运算符:
gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(mytogglebutton)) ? "1" : "0"并将其作为参数提供给set_locals。
发布于 2012-02-01 07:22:45
char x[] = "0";
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(mytogglebutton))) *x = '1';
set_locals("my_prop", x);https://stackoverflow.com/questions/9088517
复制相似问题