gpt4 book ai didi

c - 如何将 gchar* 转换为 char

转载 作者:行者123 更新时间:2023-12-02 10:17:42 27 4
gpt4 key购买 nike

当我按下键盘上的某个键(整数)时。它的作用类似于:

 gchar *keypressed;
keypressed=gdk_keyval_name (event->keyval);
printf("The KeyEvent is: %s\n", keypressed); // Till here it is fine

执行此操作时出现段错误:

char ch;
sprintf(ch, "%s\n", keypressed);
printf("The NewKeyEvent is: %s\n",ch);

我需要转换它,因为我将在switch case中使用该值。如果不进行转换,这是不可能的。

最佳答案

gcharchartypedef 别名,因此问题不在于类型转换。您需要为 sprintf 缓冲区分配一些空间。

当前,您正在将单个未初始化的char传递到指针应在的位置。除了未定义行为导致的段错误之外,您还应该收到编译器发出的警告。

要解决此问题,请创建一个 char 数组并将其传递给 sprintf:

char ch[10];
sprintf(ch, "%8s\n", keypressed);
printf("The NewKeyEvent is: %s\n", c);

请注意 sprintf 中的 8 限制。这是因为 ch 的大小为 10,我们需要两个额外的位置来表示 '\n''\0'

关于c - 如何将 gchar* 转换为 char,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32537184/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com