- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个字符串,其中包含一个整数值(的数字),我想以 int 形式获取该值。我知道还有其他方法可以做到这一点,例如 atoi()
;但是,我真的很想使用 glib 来做到这一点。是否存在这样的解析/转换功能?
最佳答案
GLib 提供了许多标准 C 库,其中包含对输入的安全检查,并在可行的情况下进行了增强。
您要找的函数是g_ascii_strtoll()
.
迂腐的补遗
atoi()
以与 strtol
AND g_ascii_strtoll()
相同的方式处理语言环境。仔细阅读联机帮助页和 Glib 文档将揭示这一点。以下是那些不能 RTFM 的一些片段:
atoi() 函数将 nptr 指向的字符串的初始部分转换为 int。行为与 strtol(nptr, (char **) NULL, 10);
相同,只是 atoi() 不检测错误。
在“C”语言环境以外的语言环境中,也可以接受其他字符串。 (例如,可能支持当前语言环境的千位分隔符。)
将字符串转换为 gint64 值。此函数的行为类似于 C 语言环境中的标准 strtoll() 函数。它在不实际更改当前语言环境的情况下执行此操作,因为这不是线程安全的。
更改区域设置
如果这还不够 sans-locale,您可以通过环境变量和/或显式调用 setlocale()
来设置语言环境
关于c - 如何解析 glib 字符串 (gchar *) 中的整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1622284/
我使用以下代码比较 gchar 中的字符串存储与从文件中读取的 char 数组: while (fgets(line, sizeof line, config) != NULL) { pr
我有一个包含字符串的字符数组: char buf[MAXBUFLEN]; buf[0] = 'f'; buf[1] = 'o'; buf[2] = 'o'; buf[3] = '\0'; 我希望将此字
所以,事情就是这样,我在这个上使用 GTK。 我正在请求 set_entry_text 上的名称。因此,用户输入他的名字,我将该变量保存为字符。 char *jugador1, *jugador2 /
我正在使用 g_strsplit 使用 \n 分隔符拆分 msg,并创建一个函数来断开字符串。该函数会中断 msg 并返回调用函数,因此我无法释放被调用函数中的拆分字符串指针。因此试图通过引用传递 g
当我尝试运行以下代码片段时,我不断收到此错误和奇怪的乱码: 错误是: (foo:11333):Pango-WARNING **:传递给 pango_layout_set_text() 的 UTF-8
当我按下键盘上的某个键(整数)时。它的作用类似于: gchar *keypressed; keypressed=gdk_keyval_name (event->keyval); printf("
我有一个定义如下的函数(用 C 语言): gchar **Scan_Return_File_Tag_Field_From_Mask_Code (File_Tag *FileTag, gchar cod
我似乎无法弄清楚我在这里做错了什么 我的结构: struct listItem {const gchar *name,*val1,*val2,*val3;}; 然后我会这样做: listItem *t
我正在尝试通过这段代码将 gchar 转换为 char const gchar * AddressText ; char * AddressValue = (char *) AddressText ;
我是初学者,使用 GTK+ 和 C 来编写一个小应用程序。我正在为 GtkTreeView 设置一个过滤器,显示功能如下,主要是从 here 复制的. static gboolean filter_f
我试图重构/修复一个函数,我是否正确地进行了截断?如果不是,一般应该怎么做?特别想知道潜在的泄漏。 void process_entry(GMenuTreeEntry *entry) { ch
在我的应用程序中我有结构: struct { gchar *xen_srv_addr; gchar *xen_srv_usr; gchar *xen_srv_psw; gchar *x
我目前正在学习 GTKTextTags和申请 GtkTextView和 GtkTextBuffer .我确实注意到了this question但不打算将我的数据导出到富文本文件,我认为这是问题的主要目
我有以下代码: int main() { const gchar *wew = gtk_entry_get_text(GTK_ENTRY(gtkentrywidget)); return 0; } g
在我的 main.h(包含在所有其他 src 文件中)中,我有: char* buffer; 这可以编译并正常工作。 由于某些其他原因,我尝试初始化buffer,两者都是 char* buffer="
我有一个字符串,其中包含一个整数值(的数字),我想以 int 形式获取该值。我知道还有其他方法可以做到这一点,例如 atoi();但是,我真的很想使用 glib 来做到这一点。是否存在这样的解析/转换
我正在开发一个用 C 编写的 linux 应用程序,它处理 gdk pixbuf 图像,然后应该通过 ftp (libcurl) 将它们发送到远程服务器。图像被保存到一个 gchar 缓冲区中 gdk
我正在为 gstreamer 构建一个 node.js 包装器。我能够构建和提取大量信息和对象(例如版本、插件、功能、上限和元素工厂。) 但是,当我调用 gst_element_factory_mak
我是一名优秀的程序员,十分优秀!