gpt4 book ai didi

c - 如何解析 glib 字符串 (gchar *) 中的整数?

转载 作者:太空狗 更新时间:2023-10-29 15:12:42 31 4
gpt4 key购买 nike

我有一个字符串,其中包含一个整数值(的数字),我想以 int 形式获取该值。我知道还有其他方法可以做到这一点,例如 atoi();但是,我真的很想使用 glib 来做到这一点。是否存在这样的解析/转换功能?

最佳答案

GLib 提供了许多标准 C 库,其中包含对输入的安全检查,并在可行的情况下进行了增强。

您要找的函数是g_ascii_strtoll() .

迂腐的补遗

atoi() 以与 strtol AND g_ascii_strtoll() 相同的方式处理语言环境。仔细阅读联机帮助页和 Glib 文档将揭示这一点。以下是那些不能 RTFM 的一些片段:

atoi()

atoi() 函数将 nptr 指向的字符串的初始部分转换为 int。行为与 strtol(nptr, (char **) NULL, 10); 相同,只是 atoi() 不检测错误。

strtol()

在“C”语言环境以外的语言环境中,也可以接受其他字符串。 (例如,可能支持当前语言环境的千位分隔符。)

g_ascii_strtoll()

将字符串转换为 gint64 值。此函数的行为类似于 C 语言环境中的标准 strtoll() 函数。它在不实际更改当前语言环境的情况下执行此操作,因为这不是线程安全的。

更改区域设置

如果这还不够 sans-locale,您可以通过环境变量和/或显式调用 setlocale() 来设置语言环境

关于c - 如何解析 glib 字符串 (gchar *) 中的整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1622284/

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