C基础知识,将整数0和1转换为char *

时间:2012-01-31 23:16:59

标签: c

请推荐最简单的转换,从整数,整数只能是0和1到char *,用C语言。

我有函数,它返回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时可能有人知道更短的方式?

3 个答案:

答案 0 :(得分:7)

最简单的方法是使用三元条件运算符:

set_locals("my_prop", 
     gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(mytogglebutton)) ? "1" : "0" );

然而,这是一个const char*,但是当您提出问题时,我认为这不会是一个问题。

答案 1 :(得分:2)

char *表示指向包含char(或连续char数组的开头)的内存位置的指针。因此,您不能直接使用值0或1而不会导致程序失败,因为0和1 表示内存位置。

您可以使用三元运算符,如下所示:

gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(mytogglebutton)) ? "1" : "0"

并将其作为set_locals的参数提供。

答案 2 :(得分:1)

char x[] = "0";
if (gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(mytogglebutton))) *x = '1';
set_locals("my_prop", x);